У меня есть приложение для iPhone, основанное на навигации.
Обычно вы запускаете RootViewController, там вы можете выбрать строку из UITableView, которая приведет вас к другому ViewController, назовем его SecondLevelViewController.
Когда приложение запускается, я проверяю, было ли оно закрыто из SecondLevelViewController (через параметр, сохраненный в defaultUserSettings). Если это так, я хочу снова отобразить этот SecondLevelViewController.
Для этого я делаю проверку в моем заявлении делегатов
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
метод, сразу после
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
Затем я добавляю SecondLevelViewController в стек просмотра. Я попробовал это с pushViewController и с setViewControllers:
SecondLevelViewController *newVC = [[SecondLevelViewController alloc] initWithNibName:@"SecondLevelView" bundle:nil];
[self.navigationController setViewControllers:[NSArray arrayWithObjects:[self.navigationController.viewControllers objectAtIndex:0], newVC, nil]
animated:YES];
Затем приложение показывает желаемый вид.
Теперь проблема: SecondLevelViewController отображает кнопку возврата в левой части панели навигации. Эта кнопка не появляется при использовании способа, описанного выше.
Мой вывод заключается в том, что RootViewController еще не полностью инициализирован во время перехода на SecondLevelViewController. Это возможно? Как я могу избежать этого?
Спасибо,
Марк.