Спасибо Бонни, что сказал мне, что делать. Действительно, подготовка к методу segue - это путь.
Я просто уточняю код и шаги здесь.
Во-первых, назовите segue (link) в раскадровке, которая соединяет вид контейнера с его первым контроллером представления. Я назвал свой «toContainer».
Затем в контроллере представления, содержащего вид контейнера добавить этот метод
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString: @"toContainer"]) {
UINavigationController *navViewController = (UINavigationController *) [segue destinationViewController];
UIViewController *vc2 = [navViewController viewControllers][0];
}
}
Так VC2 был контроллер я хотел бы получить ссылку на.
Это сработало для меня, ваш метод будет немного отличаться внутри prepareForSegue, если ваш первый viewconroller не был навигационным контроллером.
@Firula линии 'UINavigationController * navViewController = (UINavigationController *) [segue destinationViewController]; 'не инициализирует ничего своего только указателя на уже инициализированный контроллер. – Bonnie
Итак, во-первых, назовите segue (link) в раскадровке, которая соединяет вид контейнера с его первым контроллером представления. Я назвал свой «toContainer». Затем в контроллере представления, содержащего вид контейнера добавить этот метод - (недействительными) prepareForSegue: (UIStoryboardSegue *) Segue Отправитель: (ID) отправитель { , если ([segue.identifier isEqualToString: @ "toContainer"]) { UINavigationController * navViewController = (UINavigationController *) [segue destinationViewController]; UIViewController * vc2 = [navViewController viewControllers] [0]; } } vc2 был контроллером, на который я хотел получить ссылку. –
примечание: destinationViewController уже был моим контейнером, встроенным в цель UIViewController – BananaAcid