Глядя, чтобы максимально использовать повторно в приложении раскадровки iPhone - PullRequest
2 голосов
/ 29 марта 2012

Я программирую сложное приложение раскадровки и сталкиваюсь с некоторыми проблемами, когда дело касается повторного использования кода в контроллерах представления и различных путях приложения.

Можно ли перейти к ViewController, который не подключен напрямую к текущему?

Как условно перейти от кнопки к нескольким контроллерам ViewController? Подключение обоих не работает.

Можно ли ввести последовательность ViewController из произвольной позиции в приложении?

Всего несколько вопросов. У кого-нибудь есть идеи или хорошие примеры?

1 Ответ

6 голосов
/ 29 марта 2012

Могу ли я перейти к ViewController, который напрямую не связан с текущим?

Не с переходом.Но вы можете выдвинуть или представить viewController из раскадровки модально, как вы это сделали с файлами .xib.

// if self was created from code or from a .xib:
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryBoard" bundle:nil];
// if self was instantiated from within a storyboard:
UIStoryboard *storyBoard = self.storyboard;  

MyFancyViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"MyFancyViewControllerIdentifier"];
[self presentModalViewController:viewController animated:YES];

Но сначала нужно установить идентификатор.Выберите viewController в раскадровке и сделайте это в инспекторе атрибутов.

Как только MyFancyViewController становится видимым, вы можете использовать все его сегменты.Может показаться странным переключаться между сегментами кода и раскадровки, но в этом нет ничего плохого.Это делает всю раскадровку действительно полезной.


Как перейти от кнопки к нескольким ViewController'ам условно?Соединение обоих не работает.

Добавьте два или более сегментов, которые начинаются с viewController (не с кнопки или любого другого представления. Например, начните перетаскивание элемента управления в строке состояния) к целевым viewControllers.Установите для них идентификаторы и используйте такой код:

if (someState) {
    [self performSegueWithIdentifier:@"MyFirstSegueIdentifier" sender:somethingOrNil];
}
else {
    [self performSegueWithIdentifier:@"MySecondSegueIdentifier" sender:somethingOrNil];
}

Можно ли ввести последовательность ViewController из произвольной позиции в приложении?

Да, если вы используете «старой школы» вид управления контроллером.Похоже на первую часть.Создайте свой viewController и представьте его с кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...