SlideShare a Scribd company logo
iOS: Sviluppo App iPhone & 
iPad 
Dario Pizzuto 
1
Storyboard 
2
Storyboard 
Argomenti! 
• Storyboard! 
• ViewController! 
• Actions! 
• Outlets! 
• UIButton, UILabel, UITextField 
3
Storyboard 
4
Storyboard 
Storyboard! 
• Feature introdotta in iOS 5! 
• Permette di definire il workflow 
dell’App! 
• Definisce le transizioni tra le Views! 
• Storyboard traduce i componenti 
visuali in codice per il compilatore 
5
Storyboard 
6 
Storyboard! 
• Prima di iOS 8 esisteva uno storyboard 
differente per iPhone e iPad! 
• iOS 8 definisce un solo storyboard e il 
layout si gestisce attraverso le size classes! 
• La creazione dello storyboard è automatica 
durante il progetto
Storyboard 
Storyboard scene! 
• Corrisponde all’intera view! 
• Contiene gli elementi di navigazione 
7
Storyboard 
8 
Storyboard segue! 
• Gestisce la transizione tra 2 views! 
• Vari tipi di transizione! 
✓Push! 
✓Modal! 
✓Custom
Storyboard 
9 
Storyboard segue! 
• È possibile “passare” gli oggetti da una 
view ed un’altra ! 
• Durante la transizione viene invocato il 
metodo prepareForSegue:sender:! 
• Consente di configurare il tipo di transizione 
e le impostazioni della view seguente
Storyboard 
10 
Esempio Storyboard
iPad 
11
Storyboard 
iPad! 
• In generale si usa 1 classe per gestire 
entrambi i devices! 
• Attenzione a gestire le orientazioni e il 
12 
layout
Storyboard 
13 
iPad! 
• Xcode fornisce dei template ad hoc per 
iPad! 
• Vi sono alcune strutture che vengono 
utilizzate solo su iPad ! 
✓Split View! 
✓Popover
UIViewController 
14
Storyboard 
UIViewController! 
• Elemento fondamentale in iOS! 
• Identifica il controllore di una View! 
• Usato per gestire tutte le operazioni 
15 
interne
Storyboard 
16 
UIViewController
Storyboard 
Custom Class 
Help Inspector 
17
Storyboard 
UIViewController! 
• Di base l’elemento dello storyboard ha 
la default class UIViewController! 
• Se ne abbiamo creata una custom, è 
necessario sostituirla nell’apposito 
riquadro 
18
IBOutlet 
19
Storyboard 
20 
IBOutlet! 
• Gli elementi dello storyboard vengono 
identificati con un prefisso IB (Interface 
Builder)! 
• IBOutlet è una property che referenzia un 
altro oggetto in una ViewController 
attraverso l’Interface Builder! 
• Viene dichiarato con il qualificatore weak 
per prevenire retain cycle
Storyboard 
IBOutlet! 
• In passato veniva dichiarato come iVar ma è preferibile 
dichiararli come property! 
• Si definisce nell’Interface della classe! 
• Keyword IBOutlet! 
! 
@interface DPPPersonaViewController : 
UIViewController! 
@property (nonatomic, weak) IBOutlet UILabel 
*labName;! 
@end 
21
Storyboard 
22 
IBOutlet 
Connection with 
Storyboard
Storyboard 
IBOutlet! 
• Pallino vuoto indica che non è presente un 
collegamento allo Storyboard! 
• È possibile collegare un IBOutlet se e solo 
se la ViewController di destinazione è dello 
stesso tipo di quella in cui è definito 
IBOutlet! 
• Variare tipo di classe da Identity Inspector! 
23
Storyboard 
Outlets disponibili 
24
Storyboard 
Link tra property ed elemento in UI 
25
Storyboard 
IBOutlet! 
• Così facendo referenziamo l’elemento in UI con 
IBOutlet dichiarato nella classe! 
• Se tutto corretto avremo quanto segue 
26 
! 
! 
! 
!
Storyboard 
27 
IBOutlet 
Connected with 
Storyboard
IBAction 
28
Storyboard 
IBAction! 
• Sono dei metodi! 
• Definiscono delle azioni sullo storyboard! 
• Come IBOutlet devono essere 
referenziate all’interno dello storyboard! 
• Utile rispettare una naming convention 
per questo tipo di dato! 
29
Storyboard 
IBAction! 
• Si definisce nell’implementazione della 
30 
classe! 
• Keyword IBAction! 
! 
- (IBAction)refresh:(id)sender;! 
- (IBAction)toggleVisibility: 
(id)sender withEvent:(UIEvent*)event;
Storyboard 
IBAction! 
• I metodi restituiscono IBAction! 
• La signature contiene (id)sender! 
• Sender identifica l’oggetto che ha 
invocato l’azione! 
• Uso comune legato ad UIButton 
31
Storyboard 
32 
IBAction 
Connection with 
Storyboard
Storyboard 
33 
IBAction 
Connection Inspector
Storyboard 
34 
IBAction
Storyboard 
35 
IBAction
Storyboard 
36 
IBAction 
Modalità di inizio action 
Azione definita su Touch Up 
Inside
Storyboard 
37 
IBAction 
Connection with 
Storyboard
UIButton 
38
Storyboard 
UIButton! 
• Classe che definisce un bottone all’interno 
della UI! 
• Intercetta eventi touch ed invia un 
messaggio all’oggetto target! 
• Non è necessario creare un IBOutlet per 
inviare action al button ! 
• Possibilità di rendere custom UIButton 
creando una subclass a UIButton 
39
Storyboard 
UIButton! 
• Principalmente si utilizza per azioni sulla 
40 
view! 
• Es.! 
✓Salvataggio! 
✓Invio ! 
✓Login
Storyboard 
41 
UIButton
Storyboard 
Esempio UIButton action 
42
UILabel 
43
Storyboard 
UILabel! 
• Classe che definisce una label all’interno 
della UI! 
• Usato solo per testo read-only! 
• Una o più linee di output 
44
Storyboard 
UILabel! 
• Possibilità di personalizzare font, colore 
testo, allineamento e altro! 
• Possibile creare una UILabel custom 
attraverso una sublclass di UILabel 
45
Storyboard 
UILabel! 
• Per stampare valori da codice è 
necessario referenziare l’elemento in UI 
con IBOutlet 
46
Storyboard 
47 
UILabel
UITextField 
48
Storyboard 
UITextField! 
• Classe che definisce una TextField 
all’interno della UI! 
• Permette di gestire un input da parte 
dell’utente! 
• Permette di utilizzare vari tipi di tastiere! 
• Funziona unitamente al suo Delegate 
UITextFieldDelegate 
49
Storyboard 
UITextFieldDelegate! 
• Metodi uso ricorrente! 
✓textFieldDidBeginEditing ! 
✓textFieldDidEndEditing ! 
✓textFieldShouldEndEditing 
50
Storyboard 
UITextFieldDelegate - 
textFieldDidBeginEditing! 
• Metodo chiamato quando l’utente 
inizia l’editing nella textField 
51
Storyboard 
UITextFieldDelegate - 
textFieldDidEndEditing! 
• Metodo chiamato quando l’utente 
conclude l’editing nella textField! 
• Ultima chiamata del delegate prima di 
“chiudere” le operazioni sull’oggetto 
52
Storyboard 
UITextFieldDelegate - 
textFieldShouldEndEditing! 
• Metodo chiamato quando l’utente sta 
per concludere l’editing nella textField 
e muove il focus ad un altro 
componente 
53
Storyboard 
UITextField! 
• Si utilizza per memorizzare piccole 
porzioni di testo ed inviare delle azioni 
legate all’input! 
• Es.! 
✓Username field! 
✓Password field 
54
Storyboard 
55 
UITextField
Storyboard 
UITextField 
@interface DPPPersonaViewController : 
UIViewController<UITextFieldDelegate>! 
@property(nonatomic,weak) IBOutlet 
UILabel *labName;! 
@property(nonatomic,weak) IBOutlet 
UITextField *textFieldName;! 
@end 
56
Let’s Code 
57
Storyboard 
Let’s Code! 
✦Implementare una UITextfield, il testo 
inserito dovrà essere visualizzato su 
una UILabel dopo un’azione di tipo 
Touch Up Inside su UIButton 
58
Storyboard 
Ulteriori approfondimenti! 
Storyboard! 
IBOutlet! 
IBAction! 
UIButton! 
UILabel! 
UItextField 
59
Domande ? 
60

More Related Content

PDF
iOS_Course_11
PDF
iOS_Course_10
PPTX
Software open
PDF
iOS_Course_12
PDF
iOS_course_7
PPTX
portable devices
PDF
The Powerpoint 12
PPTX
Il decadentismo
iOS_Course_11
iOS_Course_10
Software open
iOS_Course_12
iOS_course_7
portable devices
The Powerpoint 12
Il decadentismo

Similar to iOS_Course_9 (13)

PDF
Xcode - Just do it
PDF
iOS_Course_8
PDF
Wearable Lab: Progettazione per Apple Watch
PDF
Progettazione per Apple Watch - Todi Appy Days 2015
PDF
iOS_Course_15
PDF
iOS_Course_2
PDF
iOS_Course_4
PDF
Programming iOS lezione 1
PPTX
ios 8 - parte 2 - todo-app - ita
PPTX
ios 8 - parte 1 - intro - ita
PDF
Introduzione a WatchKit
PDF
Sviluppo Di Applicazioni Su I Os
PPTX
Watchkit Fundamentals
Xcode - Just do it
iOS_Course_8
Wearable Lab: Progettazione per Apple Watch
Progettazione per Apple Watch - Todi Appy Days 2015
iOS_Course_15
iOS_Course_2
iOS_Course_4
Programming iOS lezione 1
ios 8 - parte 2 - todo-app - ita
ios 8 - parte 1 - intro - ita
Introduzione a WatchKit
Sviluppo Di Applicazioni Su I Os
Watchkit Fundamentals
Ad

More from Dario Pizzuto (7)

PDF
iOS_Course_16
PDF
iOS_Course_14
PDF
iOS_Course_13
PDF
iOS_Course_6
PDF
iOS_Course_5
PDF
iOS_Course_3
PDF
iOS_Course_1
iOS_Course_16
iOS_Course_14
iOS_Course_13
iOS_Course_6
iOS_Course_5
iOS_Course_3
iOS_Course_1
Ad

iOS_Course_9