Objective c 如何移动到popToViewController:从tabBarController
我的应用程序是一个TabBarController,我必须根据按下哪个选项卡采取不同的操作,所以,我委托TabBarContoller,我得到了它 现在,如果按下包含NavigationController的选项卡,则根据数据库值,应显示的视图是第一个或最后一个,因此在Tabs.m中:Objective c 如何移动到popToViewController:从tabBarController,objective-c,uinavigationcontroller,uitabbarcontroller,Objective C,Uinavigationcontroller,Uitabbarcontroller,我的应用程序是一个TabBarController,我必须根据按下哪个选项卡采取不同的操作,所以,我委托TabBarContoller,我得到了它 现在,如果按下包含NavigationController的选项卡,则根据数据库值,应显示的视图是第一个或最后一个,因此在Tabs.m中: -(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSArray *viewArrays = [(UINavigationController*)viewController viewControllers];
switch (tabBarController.selectedIndex) {
case 3:
{
NSString *query = @"SELECT * FROM login";
sqlite3_stmt *statement = [[Database alloc] select:query];
if(sqlite3_step(statement) == SQLITE_ROW) {
[(UINavigationController*)viewController popToViewController:[viewArrays objectAtIndex:1] animated:YES];
}
sqlite3_finalize(statement);
break;
}
default:
break;
}
}
问题是objectAtIndex:1现在不存在只有在至少完成一次pushView后才能使用popView。使用NSLog打印并查看self.navigationController.viewControllers中的对象,如果它包含一些对象,则适当地给出索引(在范围内),我不明白为什么要执行(UINavigationController*)viewController,请尝试此操作
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
self.navigationController.viewControllers为空:视图(null),我想这是因为我在tabBarController上,而不是在导航控制器上,是吗?这是因为您没有推送任何视图,所以也没有任何视图要弹出