Использование pushViewController: анимированный:

#iphone #uiviewcontroller #uinavigationcontroller #push

#iPhone #uiviewcontroller #uinavigationcontroller #толкать

Вопрос:

Я пытаюсь использовать pushViewController: анимированный: с UIViewController. Я разместил его в UINavigationController с помощью initWithRoot, и он все еще не работает.

Вот мой код? Я делаю что-то не так?

 CloudappSettingsViewController *cloud = [[CloudappSettingsViewController alloc] initWithNibName:nil bundle:nil];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:cloud];
        [self pushViewController:nav animated:YES];
        [cloud release];
  

Он всегда выходит из строя, когда доходит до [self pushViewController:nav animated:YES];

Есть идеи? Спасибо

Ответ №1:

является ли «self» UINavigationController?

Кажется, вы пытаетесь нажать на навигационный контроллер, но это наоборот. Вы должны представить навигационный контроллер и добавить к нему дополнительные представления.

Итак, UIView, в котором вы находитесь, уже должен быть в навигационном контроллере, тогда вы должны вставить в него cloud.

Ответ №2:

Если это есть в делегате вашего приложения, просто добавьте UINavigationController в качестве подвида в окно вашего приложения. Если вы хотите представить UINavigationController в качестве контроллера модального представления, сделайте это:

 [self presentModalViewController:nav animated:YES];
  

Комментарии:

1. Этого нет в моем AppDelegate. Это в моем ViewController. Я хочу добиться этой анимации нажатия и всплывания для настроек. У меня есть идея, как заставить его работать. Позвольте мне попробовать сейчас. Редактировать настройка SettingsViewController в качестве UINavigationController также не сработала

Ответ №3:

Это определенно приведет к сбою, потому что вы установили значение nil.

 CloudappSettingsViewController *cloud = [[CloudappSettingsViewController alloc] initWithNibName:@"NibName goes here" bundle:nil];
  

Создайте перо и назначьте его вашему контроллеру просмотра.

Комментарии:

1. Я уже пробовал это ранее этим утром. Возможно ли вообще использовать pushViewController и popViewController на UIViewController?

2. Да, это определенно возможно. В их контроллере просмотра вы всегда можете пойти вот так и выполнить нажатие и всплывающее окно: [self.NavigationController pushViewController:newViewController анимированный: ДА]; или сделать аналогичную вещь для popping. Я только что заметил в вашем коде, что вы вызываете только SELF для нажатия, что, я думаю, приведет к сбою.