Я пытался модально представить UINavigationController
с UITableViewController
в качестве корневого представления, но продолжал падать приложение, нажимая кнопку, чтобы отобразить модальное представление.
- (IBAction)flipToDefaultsViewController:(id)sender
{
RootTableViewController *controller = [[RootTableViewController alloc] initWithNibName:@"RootTableViewController" bundle:nil];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:controller];
nc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:nc animated:YES];
}
Приложение зависало ссообщение:
[RootTableViewController numberOfSectionsInTableView:]: сообщение отправлено на освобожденный экземпляр 0x5677b5
Когда я загрузил Инструменты для дальнейшего просмотра, было очевидно, что два экземплярамои UITableViewController
были созданы, один с владельцем UINavigationController
, а другой от UIKit.Созданный UIKit экземпляр был освобожден и вызвал сбой.
Когда я изменил инициализацию с initWithNibName:bundle:
на init
нормально загруженный UITableViewController
(мой файл .xib имел то же имя, что икласс).
Мой вопрос: почему это произошло?
Не следует ли инициализировать UITableViewController
таким образом при добавлении его в UINavigationController?До сих пор я охотился за документацией, но без радости.
Использование iOS 5 с ARC, но целевое развертывание - 4.0.