Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何移动到popToViewController:从tabBarController_Objective C_Uinavigationcontroller_Uitabbarcontroller - Fatal编程技术网

Objective c 如何移动到popToViewController:从tabBarController

Objective c 如何移动到popToViewController:从tabBarController,objective-c,uinavigationcontroller,uitabbarcontroller,Objective C,Uinavigationcontroller,Uitabbarcontroller,我的应用程序是一个TabBarController,我必须根据按下哪个选项卡采取不同的操作,所以,我委托TabBarContoller,我得到了它 现在,如果按下包含NavigationController的选项卡,则根据数据库值,应显示的视图是第一个或最后一个,因此在Tabs.m中: -(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController

我的应用程序是一个TabBarController,我必须根据按下哪个选项卡采取不同的操作,所以,我委托TabBarContoller,我得到了它

现在,如果按下包含NavigationController的选项卡,则根据数据库值,应显示的视图是第一个或最后一个,因此在Tabs.m中:

-(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上,而不是在导航控制器上,是吗?这是因为您没有推送任何视图,所以也没有任何视图要弹出