34
Controllers Разработка приложений для iOS Лекция 4 Глеб Тарасов [email protected]

Интуит. Разработка приложений для iOS. Лекция 4. Controllers

  • Upload
    -

  • View
    425

  • Download
    7

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Controllers

Разработка приложений для iOS

Лекция 4

Глеб Тарасов[email protected]

Page 2: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Вспомним прошлое занятие

Page 3: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как задается положение UIView на экране?

Page 4: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как задается положение UIView на экране?

view.frame = CGRectMake(…)

Page 5: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как показать UIView на экране?

Page 6: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как показать UIView на экране?

добавить в какое-то уже видимое view через addSubview:

Page 7: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как реагировать на нажатие кнопки

UIButton?

Page 8: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Как реагировать на нажатие кнопки

UIButton?

[button addTarget:self action:@selector(method) forControlEvents:UIControlEventTouchUpInside];

Page 9: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

В каком методе UIViewController

заполняем интерфейс?

Page 10: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

В каком методе UIViewController

заполняем интерфейс?

viewDidLoad

Page 11: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Сложные контроллеры

Page 12: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

UINavigationController

Page 13: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 14: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

ViewController *c = [[ViewController alloc] init]; !UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:c]; !self.window.rootViewController = nc;

Page 15: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

- (void)buttonTapped { MyViewController *my = [[MyViewController alloc] init]; [self.navigationController pushViewController:my animated:YES]; }

- (void)backTapped { [self.navigationController popViewControllerAnimated:YES]; }

Показать контроллер

Скрыть контроллер

Page 16: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

UITabBarController

Page 17: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 18: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

FirstViewController *vc1 = [[FirstViewController alloc] init]; SecondViewController *vc2 = [[SecondViewController alloc] init]; ThirdViewController *vc3 = [[ThirdViewController alloc] init]; ForthViewController *vc4 = [[ForthViewController alloc] init]; !UITabBarController *t = [[UITabBarController alloc] init]; t.viewControllers = @[ vc1, vc2, vc3, vc4 ]; self.window.rootViewController = t;

Page 19: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Modal Controller

Page 20: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

- (void)buttonTapped { DataViewController *vc = [[DataViewController alloc] init]; [self presentViewController:vc animated:YES completion:nil]; }

Показать контроллер

- (void)backTapped { [self dismissViewControllerAnimated:YES completion:nil]; }

Скрыть контроллер

Page 21: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

UIPopoverController

Page 22: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

- (void)showPopover { UIViewController *vc = [[UIViewController alloc] init]; vc.view.frame = CGRectMake(0, 0, 100, 200); UIPopoverController *p = [[UIPopoverController alloc] initWithContentViewController:vc]; [p presentPopoverFromRect:self.button.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; self.popover = p; }

Page 23: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 24: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

UISplitViewController

Page 25: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 26: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 27: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 28: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 29: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

UIPageViewController

Page 30: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 31: Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Page 32: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Демонстрация !

«Погода»

Page 33: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Домашнее задание

• составить список всех экранов и продумать переходы между ними

• для каждого экрана создать контроллер • реализовать переходы между контроллерами

• вместо списков пока сделать одну-две кнопки

Page 34: Интуит. Разработка приложений для iOS. Лекция 4. Controllers

Всё!

Глеб Тарасов [email protected] twitter.com/pilot34