SlideShare uma empresa Scribd logo
1 de 38
Занятие 2
Views и ViewControllers
Кратко

• MVC
• Views и ViewControllers
• Xcode + IB demo
• Практика
MVC
MVC
MVC
        Controller




Model                View
MVC
              Controller

        get



Model                      View
MVC
              Controller

        get                set



Model                            View
MVC
        Controller




Model                View
MVC
        Controller




          notify
Model                View




                     event
MVC
                           process

              Controller
        set                 get


                notify
Model                             View




                                  event
MVC
        Controller




Model                View
MVC
                             process

                Controller




               notify
   Model                          View




model change
MVC
                               process

                  Controller

           get


                 notify
   Model                            View




model change
MVC
                               process

                  Controller

           get                   set


                 notify
   Model                               View




model change
Cocoa


• Model – Order, OrderItem, NSArray...
• View - UIView
• Controller - UIViewController
UIView
UIViewController
UIView
                                UIWindow : UIVIew

• UIView                           UIView

                             UITextField : UIView

• subviews, superview         UILabel : UIView

• UIWindow
• Controls - MobileHIG.pdf
• ViewPG
                              UIButton : UIView
UIViewController
• Создает View и добавляет его в subview
• Имеет доступ к модели
• Инициализирует контролы
• Получает уведомления о событиях view
• При обработке может считывать и
  записывать информацию в контролы
UIViewController
                                   UIWindow : UIVIew
     UIViewController                 UIView

 @property ... UIView *view     UITextField : UIView

                                 UILabel : UIView
   CustomViewController

@property ... UITextField *tt
@property ... UILabel *label

... (void)actionMethod ...


                                 UIButton : UIView
            Order
UIViewController

• viewDidLoad
• viewDidUnload
• viewDidAppear
• viewDidDisappear
UIApplicationDelegate
UIApplicationDelegate

• application:didFinishLaunchingWithOptions
• applicationWillTerminate

• applicationWillResignActive
• applicationDidBecomeActive
DEMO
Xcode                   Interface Builder

    SimpleViewController              File’s Owner

IBOutlet ... firstNameTextField
IBOutlet ... lastNameTextField




                                         View


                                        First Name TextField



                                        Last Name TextField
Xcode                           Interface Builder
                                 class
    SimpleViewController                      File’s Owner

IBOutlet ... firstNameTextField
IBOutlet ... lastNameTextField




                                                 View


                                                First Name TextField



                                                Last Name TextField
Xcode                           Interface Builder
                                 class
    SimpleViewController                        File’s Owner

IBOutlet ... firstNameTextField           Outlets:
IBOutlet ... lastNameTextField            firstNameTextField
                                          lastNameTextField




                                                    View


                                                   First Name TextField



                                                   Last Name TextField
Xcode                           Interface Builder
                                 class
    SimpleViewController                        File’s Owner

IBOutlet ... firstNameTextField           Outlets:
IBOutlet ... lastNameTextField            firstNameTextField
                                          lastNameTextField




                                                    View


                                                   First Name TextField



                                                   Last Name TextField
loadView
      UIViewController

- (UIView)view;

- (void)loadView;




    SimpleViewController

IBOutlet ... firstNameTextField
IBOutlet ... lastNameTextField
loadView
                        UIViewController

                  - (UIView)view;

                  - (void)loadView;




                      SimpleViewController
initWithNibName
                  IBOutlet ... firstNameTextField
                  IBOutlet ... lastNameTextField
loadView
                        UIViewController

                  - (UIView)view;

                  - (void)loadView;




                      SimpleViewController
initWithNibName
                  IBOutlet ... firstNameTextField
     view         IBOutlet ... lastNameTextField
loadView
При первом обращении
  вызывает loadView
                             UIViewController

                       - (UIView)view;

                       - (void)loadView;




                           SimpleViewController
initWithNibName
                       IBOutlet ... firstNameTextField
       view            IBOutlet ... lastNameTextField
loadView
При первом обращении
  вызывает loadView                                     Дефолтная реализация
                             UIViewController              загружает xib
                       - (UIView)view;

                       - (void)loadView;                             xib
                                                                    View
                                                                  textField
                           SimpleViewController                   textField
initWithNibName
                       IBOutlet ... firstNameTextField              button
       view            IBOutlet ... lastNameTextField
loadView
                        UIViewController

                  - (UIView)view;

                  - (void)loadView;




                      SimpleViewController
initWithNibName

     view
loadView
                        UIViewController

                  - (UIView)view;

                  - (void)loadView;




                      SimpleViewController
initWithNibName

     view
loadView
                        UIViewController

                  - (UIView)view;

                  - (void)loadView;



                                             Переопределив loadView можно
                      SimpleViewController      создать view программно
initWithNibName
                  - (void)loadView;
     view
Кратко


• MVC
• Views и ViewControllers
• Xcode + IB demo
Практика
View Controller Programming Guide for iOS

• OrderViewController
• initWithOrder:(Order *)order;
• display first order item
• update button
• textResultLabel = [order description];
В следующей серии


• TableViewController
• NavigationViewContoller

Mais conteúdo relacionado

Mais procurados

Как приручить реактивное программирование
Как приручить реактивное программированиеКак приручить реактивное программирование
Как приручить реактивное программированиеDenis Tsvettsih
 
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Fedor Malyshkin
 
Как приручить реактивное программирование в XAML приложениях
Как приручить реактивное программирование в XAML приложенияхКак приручить реактивное программирование в XAML приложениях
Как приручить реактивное программирование в XAML приложенияхDenis Tsvettsih
 
Rambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRAMBLER&Co
 
Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus Denis Tsvettsih
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоStanfy
 
Архитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьАрхитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьAndrey Bibichev
 
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)Ontico
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectakrakovetsky
 
Rambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPERRambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPERRAMBLER&Co
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node jsAlex Tumanoff
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.Igor Shkulipa
 
Enterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russianEnterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russianSergiy Shychynov
 

Mais procurados (14)

Squeek School #7
Squeek School #7Squeek School #7
Squeek School #7
 
Как приручить реактивное программирование
Как приручить реактивное программированиеКак приручить реактивное программирование
Как приручить реактивное программирование
 
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring.
 
Как приручить реактивное программирование в XAML приложениях
Как приручить реактивное программирование в XAML приложенияхКак приручить реактивное программирование в XAML приложениях
Как приручить реактивное программирование в XAML приложениях
 
Rambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и Swift
 
Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
 
Архитектура в Agile: слабая связность
Архитектура в Agile: слабая связностьАрхитектура в Agile: слабая связность
Архитектура в Agile: слабая связность
 
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInject
 
Rambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPERRambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPER
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
 
Enterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russianEnterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russian
 

Destaque

BBE Präsentation am 14.06.2010
BBE Präsentation am 14.06.2010BBE Präsentation am 14.06.2010
BBE Präsentation am 14.06.20102aid.org
 
HTW-Berlin 28.10.2010
HTW-Berlin 28.10.2010HTW-Berlin 28.10.2010
HTW-Berlin 28.10.20102aid.org
 
FundraisingKongreß 06.04.2011
FundraisingKongreß 06.04.2011FundraisingKongreß 06.04.2011
FundraisingKongreß 06.04.20112aid.org
 
Socialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 PräsentationSocialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 Präsentation2aid.org
 
Social Media für NPOs (Seminar @ prodialog)
Social Media für NPOs (Seminar @ prodialog)Social Media für NPOs (Seminar @ prodialog)
Social Media für NPOs (Seminar @ prodialog)2aid.org
 
занятие 1
занятие 1занятие 1
занятие 1ajantis
 
2aid.org Deutscher Kinder-und Jugendhilfetag
2aid.org Deutscher Kinder-und Jugendhilfetag2aid.org Deutscher Kinder-und Jugendhilfetag
2aid.org Deutscher Kinder-und Jugendhilfetag2aid.org
 
Factors explaining the innefficient valuation of intangibles
Factors explaining the innefficient valuation of intangiblesFactors explaining the innefficient valuation of intangibles
Factors explaining the innefficient valuation of intangiblesaccounting2010
 

Destaque (8)

BBE Präsentation am 14.06.2010
BBE Präsentation am 14.06.2010BBE Präsentation am 14.06.2010
BBE Präsentation am 14.06.2010
 
HTW-Berlin 28.10.2010
HTW-Berlin 28.10.2010HTW-Berlin 28.10.2010
HTW-Berlin 28.10.2010
 
FundraisingKongreß 06.04.2011
FundraisingKongreß 06.04.2011FundraisingKongreß 06.04.2011
FundraisingKongreß 06.04.2011
 
Socialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 PräsentationSocialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 Präsentation
 
Social Media für NPOs (Seminar @ prodialog)
Social Media für NPOs (Seminar @ prodialog)Social Media für NPOs (Seminar @ prodialog)
Social Media für NPOs (Seminar @ prodialog)
 
занятие 1
занятие 1занятие 1
занятие 1
 
2aid.org Deutscher Kinder-und Jugendhilfetag
2aid.org Deutscher Kinder-und Jugendhilfetag2aid.org Deutscher Kinder-und Jugendhilfetag
2aid.org Deutscher Kinder-und Jugendhilfetag
 
Factors explaining the innefficient valuation of intangibles
Factors explaining the innefficient valuation of intangiblesFactors explaining the innefficient valuation of intangibles
Factors explaining the innefficient valuation of intangibles
 

Semelhante a занятие 2

iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKitNoveo
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsГлеб Тарасов
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOSОмские ИТ-субботники
 
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...ITGinGer
 
iOS-05_1-UIKit
iOS-05_1-UIKitiOS-05_1-UIKit
iOS-05_1-UIKitNoveo
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)65apps
 
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersИнтуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersГлеб Тарасов
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCAndrew Mayorov
 
Yet another architectur. Как устроены приложения SuperJob изнутри
Yet another architectur.  Как устроены приложения SuperJob изнутриYet another architectur.  Как устроены приложения SuperJob изнутри
Yet another architectur. Как устроены приложения SuperJob изнутриDenisenko Sergei
 
MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelperDataArt
 
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...HappyDev
 
Аспектно-Ориентированный Подход
Аспектно-Ориентированный ПодходАспектно-Ориентированный Подход
Аспектно-Ориентированный Подходakopium
 

Semelhante a занятие 2 (20)

Squeek school 4
Squeek school 4Squeek school 4
Squeek school 4
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
 
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...
MPD2011 | Роман Харченко "Самое самое в XCode 4.2 и iOS 5.0 с точки зрения ра...
 
iOS-05_1-UIKit
iOS-05_1-UIKitiOS-05_1-UIKit
iOS-05_1-UIKit
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)
 
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
 
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersИнтуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
 
Viper architecture
Viper architectureViper architecture
Viper architecture
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVC
 
Yet another architectur. Как устроены приложения SuperJob изнутри
Yet another architectur.  Как устроены приложения SuperJob изнутриYet another architectur.  Как устроены приложения SuperJob изнутри
Yet another architectur. Как устроены приложения SuperJob изнутри
 
MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelper
 
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
 
Аспектно-Ориентированный Подход
Аспектно-Ориентированный ПодходАспектно-Ориентированный Подход
Аспектно-Ориентированный Подход
 

занятие 2

  • 1. Занятие 2 Views и ViewControllers
  • 2. Кратко • MVC • Views и ViewControllers • Xcode + IB demo • Практика
  • 3. MVC
  • 4. MVC
  • 5. MVC Controller Model View
  • 6. MVC Controller get Model View
  • 7. MVC Controller get set Model View
  • 8. MVC Controller Model View
  • 9. MVC Controller notify Model View event
  • 10. MVC process Controller set get notify Model View event
  • 11. MVC Controller Model View
  • 12. MVC process Controller notify Model View model change
  • 13. MVC process Controller get notify Model View model change
  • 14. MVC process Controller get set notify Model View model change
  • 15. Cocoa • Model – Order, OrderItem, NSArray... • View - UIView • Controller - UIViewController
  • 17. UIView UIWindow : UIVIew • UIView UIView UITextField : UIView • subviews, superview UILabel : UIView • UIWindow • Controls - MobileHIG.pdf • ViewPG UIButton : UIView
  • 18. UIViewController • Создает View и добавляет его в subview • Имеет доступ к модели • Инициализирует контролы • Получает уведомления о событиях view • При обработке может считывать и записывать информацию в контролы
  • 19. UIViewController UIWindow : UIVIew UIViewController UIView @property ... UIView *view UITextField : UIView UILabel : UIView CustomViewController @property ... UITextField *tt @property ... UILabel *label ... (void)actionMethod ... UIButton : UIView Order
  • 20. UIViewController • viewDidLoad • viewDidUnload • viewDidAppear • viewDidDisappear
  • 23. DEMO
  • 24. Xcode Interface Builder SimpleViewController File’s Owner IBOutlet ... firstNameTextField IBOutlet ... lastNameTextField View First Name TextField Last Name TextField
  • 25. Xcode Interface Builder class SimpleViewController File’s Owner IBOutlet ... firstNameTextField IBOutlet ... lastNameTextField View First Name TextField Last Name TextField
  • 26. Xcode Interface Builder class SimpleViewController File’s Owner IBOutlet ... firstNameTextField Outlets: IBOutlet ... lastNameTextField firstNameTextField lastNameTextField View First Name TextField Last Name TextField
  • 27. Xcode Interface Builder class SimpleViewController File’s Owner IBOutlet ... firstNameTextField Outlets: IBOutlet ... lastNameTextField firstNameTextField lastNameTextField View First Name TextField Last Name TextField
  • 28. loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController IBOutlet ... firstNameTextField IBOutlet ... lastNameTextField
  • 29. loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController initWithNibName IBOutlet ... firstNameTextField IBOutlet ... lastNameTextField
  • 30. loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController initWithNibName IBOutlet ... firstNameTextField view IBOutlet ... lastNameTextField
  • 31. loadView При первом обращении вызывает loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController initWithNibName IBOutlet ... firstNameTextField view IBOutlet ... lastNameTextField
  • 32. loadView При первом обращении вызывает loadView Дефолтная реализация UIViewController загружает xib - (UIView)view; - (void)loadView; xib View textField SimpleViewController textField initWithNibName IBOutlet ... firstNameTextField button view IBOutlet ... lastNameTextField
  • 33. loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController initWithNibName view
  • 34. loadView UIViewController - (UIView)view; - (void)loadView; SimpleViewController initWithNibName view
  • 35. loadView UIViewController - (UIView)view; - (void)loadView; Переопределив loadView можно SimpleViewController создать view программно initWithNibName - (void)loadView; view
  • 36. Кратко • MVC • Views и ViewControllers • Xcode + IB demo
  • 37. Практика View Controller Programming Guide for iOS • OrderViewController • initWithOrder:(Order *)order; • display first order item • update button • textResultLabel = [order description];
  • 38. В следующей серии • TableViewController • NavigationViewContoller

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n