SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Разработка приложений
   для iPhone и iPad
      занятие #6
домашнее задание
      • Шулюгин Владислав - 12
      • Кабир Павел - 10
      • Николенко Анастасия - 9
      • Михаил Терентьев - 12
      • Андрей Кузьминов - 9
      • Николай Яковлев - 9
      • Михаил Акулов - 15
      • Павел Мусатов - 12
счет команд

• Букукаб = 9 + 6 = 15
• l-dendrology = 12 + 15 + 10 + 10 = 47
• iTeam = 12 + 9 + 12 + 10 = 43
• HPNG = 9 + 8 = 17
• Васёк&Эдуард = 8
View-based application

        Жизненный цикл
         ViewController

- (id)initWithNibName:(NSString *)nibName
          bundle:(NSBundle *)bundle

           - (void)viewDidLoad

 - (void)viewWillAppear:(BOOL)animated

- (void)viewWillDisappear:(BOOL)animated

    [[NSUserDefaults standartUserDefaults] setFloat: ForKey:];

       [[NSUserDefaults standartUserDefaults] floatForKey:];
        [[NSUserDefaults standartUserDefaults] synchonize];
вращение
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
   return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
   return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
как изменять позиции
            при вращении?
ur View with Interface Builder
Interface Builder
w controller class
 let
oller
Name:bundle:
UINavigationController
                      UINavigationController
                                              UINavigationController
                                                           • Stack of view controllers
                                                • Stack of • Navigation bar
                                                           view controllers
                                                • Navigation bar

                                                                               View Controller
                                                                    View Controller
                                                           Navigation             View Controller
                                                Navigation Controller View Controller
                                                Controller                          View Controller
                                                                        View Controller




                 Thursday, January 28, 2010                                                           5
Thursday, January 28, 2010                                                                5
управление набором
     ViewController
   - (void)pushViewController:(UIViewController *)viewController
animated:(BOOL)animated;

!!!вызывается retain


- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

pop обычно не вызывается, автоматически при нажатии ‘<-’
первый ViewController

- (void)applicationDidFinishLaunching
}
   navController = [[UINavigationController alloc] init];

    [navController pushViewController:firstViewController animated:NO];

    [window addSubview:navController.view];
}
а как использовать?
- (void)someAction:(id)sender {
}

    UIViewController *viewController = ...;
    [self.navigationController pushViewController:viewControlle animated:YES];
}
посмотрим?




•New Window-Based app
•Новый ViewController с кнопкой
•NavigationController и FirstViewController в AppDelegate
•SecondViewController
•Cвойство title у ViewController
как связать все
ViewController?
как связать все
     ViewController?
• Не стоит использовать глобальные
  переменные или AppDelagate
• Что нужно на входе следующему
  ViewController?
как связать все
              ViewController?
         Best Practices for Data Flow
• Не стоит использовать глобальные
   •       Figure out exactly what needs to be communicated
    переменные или AppDelagate
         • Define input parameters for your view controller

• Что нужно на входе следующему
    ViewController?
                                           Data

                                List           Detail
                              Controller     Controller




 Thursday, January 28, 2010                                   16
как связать все
              ViewController?
         Best Practices for Data Flow
• Не стоит использовать глобальные
   •       Figure out exactly what needs to be communicated
    переменные или AppDelagate
         • Define input parameters for your view controller

• Что нужно на входе следующему
    ViewController?
                                           Data

                                List           Detail
                              Controller     Controller


• В обратную сторону - используя делегаты
   (с помощью протоколов)
 Thursday, January 28, 2010                                   16
Customizing Navigation
             бонусы к навигации
        • Buttons or custom controls
        • Interact with the entire screen




Thursday, January 28, 2010                  20
UINavigationTitle
• Содержится у любогоOwnership
       Navigation Item ViewController


                                           Left Bar
                                         Button Item



     View Controller   Navigation Item    Title View



                                          Right Bar
                                         Button Item
кнопки справа и слева

• UIBarButtonItem отображается сверху
• Отображает строку, изображение
• Target + Action (как и во всех кнопках)
создание
                UIBarButtonItem
                       - (void)viewDidLoad {
                          UIBarButtonItem *fooButton = [[UIBarButtonItem alloc]
                          initWithTitle:@"Foo”
Text Bar Button Item      style:UIBarButtonItemStyleBordered
                          target:self
                          action:@selector(foo:)];

                          self.navigationItem.leftBarButtonItem = fooButton;
                          [fooButton release];
 - (void)viewDidLoad
 {                         }
   UIBarButtonItem *fooButton = [[UIBarButtonItem alloc]
                        - (void)viewDidLoad {
      initWithTitle:@"Foo”
System Bar Button Item     UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
      style:UIBarButtonItemStyleBordered
                           initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
      target:self
                           style:UIBarButtonItemStyleBordered
      action:@selector(foo:)];
                           target:self
                           action:@selector(add:)];
   self.navigationItem.leftBarButtonItem = fooButton;

   [fooButton release];   self.navigationItem.rightBarButtonItem = addButton;
 - (void)viewDidLoad      [addButton release];
 }
 {                        }
   UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
кнопка
        редактирования
Edit/Done Button
        •
• Very common pattern практика
          реализованная
• Every view controller has one available
  !   Target/action already set up


self.navigationItem.leftBarButtonItem = self.editButtonItem;
    self.navigationItem.leftBarButtonItem = self.editButtonItem;


 // Called when the user toggles the edit/done button
 - (void)setEditing:(BOOL)editing animated:(BOOL)animated
     - (void)setEditing:(BOOL)editing animated:(BOOL)animated {
     }
 {
   // Update appearance of views
 }
Custom Title View    вместо надписи
        • Arbitrary view in place of the title



              UISegmentedControl *segmentedControl = ...
              self.navigationItem.titleView = segmentedControl;
              [segmentedControl release];




Thursday, January 28, 2010                                        28
UITabBarController
          UITabBarController
                               UITabBarController
                               • Array of view controllers
                               • Tab bar
                             • Array of view controllers
                             • Tab bar
                                                   View Controller

                                  Tab Bar
                                                   View Controller
                                 Controller

                                                   View Controller

                               Tab Bar
                              Controller


Thursday, January 28, 2010                                           32
используем
            UITabBarController
- (void)applicationDidFinishLaunching
{
  tabBarController = [[UITabBarController alloc] init];

    NSArray *myViewControllers = [NSArray
    arrayWithObjects:someViewController, nil];

    tabBarController.viewControllers = myViewControllers;

    [window addSubview:tabBarController.view];
}
добавляем картинку и
Creating Tab надпись
             Bar Items
• Title and image



   - (void)viewDidLoad
   {
     UITabBarItem *item = [[UITabBarItem alloc]
                         initWithTitle:@“Playlists”
                         image:[UIImage imageNamed:@“music.png”]
                         tag:0];
     self.tabBarItem = item;
     [item release];
   }
стандартный набор
        Creating Tab Bar Items
        • System item



              - (void)viewDidLoad
              {
                UITabBarItem *item = [[UITabBarItem alloc]
                                    initWithTabBarSystemItem:
                                      UITabBarSystemItemBookmarks
                                    tag:0]
                self.tabBarItem = item;
                [item release];
              }




Thursday, January 28, 2010                                          37
ollers
              а если слишком
          More View Controllers
          •          много?
b bar controller has too many a tab bar controller has too many
            What happens when
y at once? view controllers to display at once?
            ! “More” tab bar item
              displayed automatically
            ! User can navigate to

              remaining view controllers
Tab Bar + Navigation Controllers
                             Multiple parallel hierarchies




Thursday, January 28, 2010                                   41
архитектура
    Tab Bar + Navigation Controllers


                       Navigation
                       Controller      View Controller


                       Navigation
Tab Bar Controller     Controller      View Controller


                     View Controller
домашка!
http://empatika.com
oleg.parinov@empatika.com

Weitere ähnliche Inhalte

Ähnlich wie Develop iPhone and iPad Apps Lesson 6

Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barVu Tran Lam
 
Intro to UIKit • Made by Many
Intro to UIKit • Made by ManyIntro to UIKit • Made by Many
Intro to UIKit • Made by Manykenatmxm
 
iPhone Development: Multiple Views
iPhone Development: Multiple ViewsiPhone Development: Multiple Views
iPhone Development: Multiple ViewsJussi Pohjolainen
 
Creating Container View Controllers
Creating Container View ControllersCreating Container View Controllers
Creating Container View ControllersBob McCune
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder BehindJohn Wilker
 
07 Navigation Tab Bar Controllers
07 Navigation Tab Bar Controllers07 Navigation Tab Bar Controllers
07 Navigation Tab Bar ControllersMahmoud
 
April iOS Meetup - UIAppearance Presentation
April iOS Meetup - UIAppearance PresentationApril iOS Meetup - UIAppearance Presentation
April iOS Meetup - UIAppearance PresentationLong Weekend LLC
 
storyboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilderstoryboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilderHiroyuki Fujikawa
 
Model Driven App Development for iPhone and Android
Model Driven App Development for iPhone and AndroidModel Driven App Development for iPhone and Android
Model Driven App Development for iPhone and AndroidPeter Friese
 
Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Michael Shrove
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4Calvin Cheng
 
Testing view controllers with Quick and Nimble
Testing view controllers with Quick and NimbleTesting view controllers with Quick and Nimble
Testing view controllers with Quick and NimbleMarcio Klepacz
 

Ähnlich wie Develop iPhone and iPad Apps Lesson 6 (20)

iOS: View Controllers
iOS: View ControllersiOS: View Controllers
iOS: View Controllers
 
Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab bar
 
IOS APPs Revision
IOS APPs RevisionIOS APPs Revision
IOS APPs Revision
 
Intro to UIKit • Made by Many
Intro to UIKit • Made by ManyIntro to UIKit • Made by Many
Intro to UIKit • Made by Many
 
iPhone Development: Multiple Views
iPhone Development: Multiple ViewsiPhone Development: Multiple Views
iPhone Development: Multiple Views
 
Creating Container View Controllers
Creating Container View ControllersCreating Container View Controllers
Creating Container View Controllers
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder Behind
 
07 Navigation Tab Bar Controllers
07 Navigation Tab Bar Controllers07 Navigation Tab Bar Controllers
07 Navigation Tab Bar Controllers
 
April iOS Meetup - UIAppearance Presentation
April iOS Meetup - UIAppearance PresentationApril iOS Meetup - UIAppearance Presentation
April iOS Meetup - UIAppearance Presentation
 
storyboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilderstoryboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilder
 
Model Driven App Development for iPhone and Android
Model Driven App Development for iPhone and AndroidModel Driven App Development for iPhone and Android
Model Driven App Development for iPhone and Android
 
[iOS] Navigation
[iOS] Navigation[iOS] Navigation
[iOS] Navigation
 
Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4
 
IOS- Designing with ui tool bar in ios
IOS-  Designing with ui tool bar in iosIOS-  Designing with ui tool bar in ios
IOS- Designing with ui tool bar in ios
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
 
iOS Development (Part 1)
iOS Development (Part 1)iOS Development (Part 1)
iOS Development (Part 1)
 
SwiftでUIKitDynamics
SwiftでUIKitDynamicsSwiftでUIKitDynamics
SwiftでUIKitDynamics
 
Testing view controllers with Quick and Nimble
Testing view controllers with Quick and NimbleTesting view controllers with Quick and Nimble
Testing view controllers with Quick and Nimble
 
Swf2 ui
Swf2 uiSwf2 ui
Swf2 ui
 

Mehr von Oleg Parinov

'Real agile' coaching session
'Real agile'   coaching session'Real agile'   coaching session
'Real agile' coaching sessionOleg Parinov
 
Oleg+olga product meetup
Oleg+olga product meetupOleg+olga product meetup
Oleg+olga product meetupOleg Parinov
 
[Технопарк] Управление продуктом-1
[Технопарк] Управление продуктом-1[Технопарк] Управление продуктом-1
[Технопарк] Управление продуктом-1Oleg Parinov
 
[Технопарк] Управление продуктом-2
[Технопарк] Управление продуктом-2[Технопарк] Управление продуктом-2
[Технопарк] Управление продуктом-2Oleg Parinov
 
[Технопарк] Управление продуктом-3
[Технопарк] Управление продуктом-3[Технопарк] Управление продуктом-3
[Технопарк] Управление продуктом-3Oleg Parinov
 
Управление продуктом - 5-я лекция - Технопарк@Mail.Ru
Управление продуктом - 5-я лекция - Технопарк@Mail.RuУправление продуктом - 5-я лекция - Технопарк@Mail.Ru
Управление продуктом - 5-я лекция - Технопарк@Mail.RuOleg Parinov
 
Технопарк - Управление продуктом - Лекция №2
Технопарк - Управление продуктом - Лекция №2Технопарк - Управление продуктом - Лекция №2
Технопарк - Управление продуктом - Лекция №2Oleg Parinov
 
Лекция №2 Курса Product Management в НИУ-ВШЭ
Лекция №2 Курса Product Management в НИУ-ВШЭЛекция №2 Курса Product Management в НИУ-ВШЭ
Лекция №2 Курса Product Management в НИУ-ВШЭOleg Parinov
 
Product management - лекция №1
Product management - лекция №1Product management - лекция №1
Product management - лекция №1Oleg Parinov
 
Презентация проекта In Flow
Презентация проекта In FlowПрезентация проекта In Flow
Презентация проекта In FlowOleg Parinov
 
Pivot + Lean Startup #poSEEDelki Harvest
Pivot + Lean Startup #poSEEDelki HarvestPivot + Lean Startup #poSEEDelki Harvest
Pivot + Lean Startup #poSEEDelki HarvestOleg Parinov
 
Start-up Reality Check - Empatika в ВШЭ
Start-up Reality Check - Empatika в ВШЭStart-up Reality Check - Empatika в ВШЭ
Start-up Reality Check - Empatika в ВШЭOleg Parinov
 
Генетические алгоритмы
Генетические алгоритмыГенетические алгоритмы
Генетические алгоритмыOleg Parinov
 
Четвертое занятие курса iOS-разработки в ГУ-ВШЭ
Четвертое занятие курса iOS-разработки в ГУ-ВШЭЧетвертое занятие курса iOS-разработки в ГУ-ВШЭ
Четвертое занятие курса iOS-разработки в ГУ-ВШЭOleg Parinov
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭOleg Parinov
 

Mehr von Oleg Parinov (19)

'Real agile' coaching session
'Real agile'   coaching session'Real agile'   coaching session
'Real agile' coaching session
 
Oleg+olga product meetup
Oleg+olga product meetupOleg+olga product meetup
Oleg+olga product meetup
 
[Технопарк] Управление продуктом-1
[Технопарк] Управление продуктом-1[Технопарк] Управление продуктом-1
[Технопарк] Управление продуктом-1
 
[Технопарк] Управление продуктом-2
[Технопарк] Управление продуктом-2[Технопарк] Управление продуктом-2
[Технопарк] Управление продуктом-2
 
[Технопарк] Управление продуктом-3
[Технопарк] Управление продуктом-3[Технопарк] Управление продуктом-3
[Технопарк] Управление продуктом-3
 
Управление продуктом - 5-я лекция - Технопарк@Mail.Ru
Управление продуктом - 5-я лекция - Технопарк@Mail.RuУправление продуктом - 5-я лекция - Технопарк@Mail.Ru
Управление продуктом - 5-я лекция - Технопарк@Mail.Ru
 
Технопарк - Управление продуктом - Лекция №2
Технопарк - Управление продуктом - Лекция №2Технопарк - Управление продуктом - Лекция №2
Технопарк - Управление продуктом - Лекция №2
 
Лекция №2 Курса Product Management в НИУ-ВШЭ
Лекция №2 Курса Product Management в НИУ-ВШЭЛекция №2 Курса Product Management в НИУ-ВШЭ
Лекция №2 Курса Product Management в НИУ-ВШЭ
 
Product management - лекция №1
Product management - лекция №1Product management - лекция №1
Product management - лекция №1
 
Презентация проекта In Flow
Презентация проекта In FlowПрезентация проекта In Flow
Презентация проекта In Flow
 
Pivot + Lean Startup #poSEEDelki Harvest
Pivot + Lean Startup #poSEEDelki HarvestPivot + Lean Startup #poSEEDelki Harvest
Pivot + Lean Startup #poSEEDelki Harvest
 
Instagram Design
Instagram DesignInstagram Design
Instagram Design
 
Start-up Reality Check - Empatika в ВШЭ
Start-up Reality Check - Empatika в ВШЭStart-up Reality Check - Empatika в ВШЭ
Start-up Reality Check - Empatika в ВШЭ
 
Генетические алгоритмы
Генетические алгоритмыГенетические алгоритмы
Генетические алгоритмы
 
Squeek school 2
Squeek school 2Squeek school 2
Squeek school 2
 
Squeek 1
Squeek 1Squeek 1
Squeek 1
 
занятие7
занятие7занятие7
занятие7
 
Четвертое занятие курса iOS-разработки в ГУ-ВШЭ
Четвертое занятие курса iOS-разработки в ГУ-ВШЭЧетвертое занятие курса iOS-разработки в ГУ-ВШЭ
Четвертое занятие курса iOS-разработки в ГУ-ВШЭ
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ
 

Develop iPhone and iPad Apps Lesson 6

  • 1. Разработка приложений для iPhone и iPad занятие #6
  • 2. домашнее задание • Шулюгин Владислав - 12 • Кабир Павел - 10 • Николенко Анастасия - 9 • Михаил Терентьев - 12 • Андрей Кузьминов - 9 • Николай Яковлев - 9 • Михаил Акулов - 15 • Павел Мусатов - 12
  • 3. счет команд • Букукаб = 9 + 6 = 15 • l-dendrology = 12 + 15 + 10 + 10 = 47 • iTeam = 12 + 9 + 12 + 10 = 43 • HPNG = 9 + 8 = 17 • Васёк&Эдуард = 8
  • 4. View-based application Жизненный цикл ViewController - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)bundle - (void)viewDidLoad - (void)viewWillAppear:(BOOL)animated - (void)viewWillDisappear:(BOOL)animated [[NSUserDefaults standartUserDefaults] setFloat: ForKey:]; [[NSUserDefaults standartUserDefaults] floatForKey:]; [[NSUserDefaults standartUserDefaults] synchonize];
  • 5. вращение - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); }
  • 6. как изменять позиции при вращении? ur View with Interface Builder Interface Builder w controller class let oller Name:bundle:
  • 7. UINavigationController UINavigationController UINavigationController • Stack of view controllers • Stack of • Navigation bar view controllers • Navigation bar View Controller View Controller Navigation View Controller Navigation Controller View Controller Controller View Controller View Controller Thursday, January 28, 2010 5 Thursday, January 28, 2010 5
  • 8. управление набором ViewController - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; !!!вызывается retain - (UIViewController *)popViewControllerAnimated:(BOOL)animated; pop обычно не вызывается, автоматически при нажатии ‘<-’
  • 9. первый ViewController - (void)applicationDidFinishLaunching } navController = [[UINavigationController alloc] init]; [navController pushViewController:firstViewController animated:NO]; [window addSubview:navController.view]; }
  • 10. а как использовать? - (void)someAction:(id)sender { } UIViewController *viewController = ...; [self.navigationController pushViewController:viewControlle animated:YES]; }
  • 11. посмотрим? •New Window-Based app •Новый ViewController с кнопкой •NavigationController и FirstViewController в AppDelegate •SecondViewController •Cвойство title у ViewController
  • 13. как связать все ViewController? • Не стоит использовать глобальные переменные или AppDelagate • Что нужно на входе следующему ViewController?
  • 14. как связать все ViewController? Best Practices for Data Flow • Не стоит использовать глобальные • Figure out exactly what needs to be communicated переменные или AppDelagate • Define input parameters for your view controller • Что нужно на входе следующему ViewController? Data List Detail Controller Controller Thursday, January 28, 2010 16
  • 15. как связать все ViewController? Best Practices for Data Flow • Не стоит использовать глобальные • Figure out exactly what needs to be communicated переменные или AppDelagate • Define input parameters for your view controller • Что нужно на входе следующему ViewController? Data List Detail Controller Controller • В обратную сторону - используя делегаты (с помощью протоколов) Thursday, January 28, 2010 16
  • 16. Customizing Navigation бонусы к навигации • Buttons or custom controls • Interact with the entire screen Thursday, January 28, 2010 20
  • 17. UINavigationTitle • Содержится у любогоOwnership Navigation Item ViewController Left Bar Button Item View Controller Navigation Item Title View Right Bar Button Item
  • 18. кнопки справа и слева • UIBarButtonItem отображается сверху • Отображает строку, изображение • Target + Action (как и во всех кнопках)
  • 19. создание UIBarButtonItem - (void)viewDidLoad { UIBarButtonItem *fooButton = [[UIBarButtonItem alloc] initWithTitle:@"Foo” Text Bar Button Item style:UIBarButtonItemStyleBordered target:self action:@selector(foo:)]; self.navigationItem.leftBarButtonItem = fooButton; [fooButton release]; - (void)viewDidLoad { } UIBarButtonItem *fooButton = [[UIBarButtonItem alloc] - (void)viewDidLoad { initWithTitle:@"Foo” System Bar Button Item UIBarButtonItem *addButton = [[UIBarButtonItem alloc] style:UIBarButtonItemStyleBordered initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self style:UIBarButtonItemStyleBordered action:@selector(foo:)]; target:self action:@selector(add:)]; self.navigationItem.leftBarButtonItem = fooButton; [fooButton release]; self.navigationItem.rightBarButtonItem = addButton; - (void)viewDidLoad [addButton release]; } { } UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
  • 20. кнопка редактирования Edit/Done Button • • Very common pattern практика реализованная • Every view controller has one available ! Target/action already set up self.navigationItem.leftBarButtonItem = self.editButtonItem; self.navigationItem.leftBarButtonItem = self.editButtonItem; // Called when the user toggles the edit/done button - (void)setEditing:(BOOL)editing animated:(BOOL)animated - (void)setEditing:(BOOL)editing animated:(BOOL)animated { } { // Update appearance of views }
  • 21. Custom Title View вместо надписи • Arbitrary view in place of the title UISegmentedControl *segmentedControl = ... self.navigationItem.titleView = segmentedControl; [segmentedControl release]; Thursday, January 28, 2010 28
  • 22. UITabBarController UITabBarController UITabBarController • Array of view controllers • Tab bar • Array of view controllers • Tab bar View Controller Tab Bar View Controller Controller View Controller Tab Bar Controller Thursday, January 28, 2010 32
  • 23. используем UITabBarController - (void)applicationDidFinishLaunching { tabBarController = [[UITabBarController alloc] init]; NSArray *myViewControllers = [NSArray arrayWithObjects:someViewController, nil]; tabBarController.viewControllers = myViewControllers; [window addSubview:tabBarController.view]; }
  • 24. добавляем картинку и Creating Tab надпись Bar Items • Title and image - (void)viewDidLoad { UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@“Playlists” image:[UIImage imageNamed:@“music.png”] tag:0]; self.tabBarItem = item; [item release]; }
  • 25. стандартный набор Creating Tab Bar Items • System item - (void)viewDidLoad { UITabBarItem *item = [[UITabBarItem alloc] initWithTabBarSystemItem: UITabBarSystemItemBookmarks tag:0] self.tabBarItem = item; [item release]; } Thursday, January 28, 2010 37
  • 26. ollers а если слишком More View Controllers • много? b bar controller has too many a tab bar controller has too many What happens when y at once? view controllers to display at once? ! “More” tab bar item displayed automatically ! User can navigate to remaining view controllers
  • 27. Tab Bar + Navigation Controllers Multiple parallel hierarchies Thursday, January 28, 2010 41
  • 28. архитектура Tab Bar + Navigation Controllers Navigation Controller View Controller Navigation Tab Bar Controller Controller View Controller View Controller

Hinweis der Redaktion

  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