У меня есть приложение, в котором я использую контроллер навигации для представления иерархических данных с помощью customViewControllers.Однако в нашей спецификации приложения на каждой странице должна быть «домашняя кнопка», которая должна вернуть пользователя на страницу rootviewcontroller.Чтобы добиться этого, у меня есть метод launchHomePage, определенный во всех пользовательских контроллерах представления, который выглядит следующим образом:
- (void) launchHomePage {
[self.navigationController popToRootViewControllerAnimated:NO];
}
Это прекрасно работало на iOS 4.2.Однако в iOS4.3 и iOS5 при нажатии кнопки «Домой» отображается пустой вид таблицы.Чтобы отладить проблему, я попытался увидеть список viewControllers в navigationController перед вызовом popToRootViewControllerAnimated.
- (void) launchHomePage {
if(self.navigationController) {
[self printViewControllers:[self.navigationController viewControllers]];
[viewController.navigationController popToRootViewControllerAnimated:NO];
} else {
NSLog(@"Couldn't retrieve navigationcontroller\n");
}
}
- (void) printViewControllers:(NSArray *) viewControllers {
if(viewControllers) {
NSLog(@"Number of viewcontrollers in navigationController's array is %d\n",
[viewControllers count]);
int i = 1;
for(UIViewController *viewController in viewControllers) {
NSLog(@"viewController %d is %@ and has title %@\n", i++, viewController, [viewController title]);
}
}
}
Для той же последовательности выполнения ниже приведен вывод описанного выше метода в iOS5.0 против iOS4.2:
iOS5:
Number of viewcontrollers in navigationController's array is 3
viewController 1 is <RootViewController: 0x86259c0> and has title (null)
viewController 2 is <RootViewController: 0x9115680> and has title MainPage
viewController 3 is <FirstPageViewController: 0x9141bd0> and has title FirstPage
iOS4.2:
Number of viewcontrollers in navigationController's array is 2
viewController 1 is <RootViewController: 0x624d520> and has title MainPage
viewController 2 is <FirstPageViewController: 0x651ce10> and has title FirstPage
Я не могу понять, как / почему пустая страница (с нулевым заголовком) в качестве корня контроллера навигации.Цени любую помощь в выяснении этого.