Ios6 UINavigationController推送UIViewController,但什么也没有发生

Ios6 UINavigationController推送UIViewController,但什么也没有发生,ios6,uiviewcontroller,uinavigationcontroller,pushviewcontroller,Ios6,Uiviewcontroller,Uinavigationcontroller,Pushviewcontroller,以下是相关代码行: if([top class] == [SitesViewController class]){ BackupsViewController *backup = [[BackupsViewController alloc] initWithStyle:UITableViewStyleGrouped andID:cg_id]; [websites pus

以下是相关代码行:

       if([top class] == [SitesViewController class]){
                            BackupsViewController *backup = [[BackupsViewController alloc] initWithStyle:UITableViewStyleGrouped andID:cg_id];
                            [websites pushViewController:backup animated:NO];
                            [websites pushViewController:details_controller animated:YES];
网站是一个导航控制器,它不是零

现在我第一次运行它时,它工作正常。但如果我退出并重新登录,它就不起作用了。事实上,什么都没有发生。它保持在原来的页面上。我已经检查过了,确保没有任何东西是零。我也知道,我正在加入这个if声明,而不是其他声明

以下是注销功能:

  AppDelegate * appDelegate = (GCAppDelegate*)[[UIApplication sharedApplication] delegate];
 [appDelegate.tabBarController setSelectedIndex:0]
UINavigationController * topViewController = appDelegate.tabBarController.viewControllers[0];
[topViewController presentViewController:loginScreen animated:YES completion:nil];
[topViewController popToRootViewControllerAnimated:TRUE];
[self deteleKeysAndTokens: (NSString*)k_apiSecret withAccessToken: (NSString*)k_accessToken withAccessSecret:(NSString*) k_accessSecret withkAPIKey: (NSString*)k_apiKey];
如果有帮助,backupViewController正在下载网站列表,detailsViewcontroller正在获取有关网站的信息。事实上,在打电话之后:

 [websites pushViewController:backup animated:NO];
 [websites pushViewController:details_controller    
  animated:YES];
(这是我发布的第一段代码。) 我检查topViewController是什么:

      UIViewController * topView = websites.topViewController;

topViewController是详细信息控制器。所以我知道它被推到了堆栈上。然而,什么也没有发生。我的观点和我开始时一样。我想可能是因为我没有得到所有的数据。但这并不能解释(a)为什么它第一次运行,以及(b)为什么它不显示空白页。

很难说代码有什么问题,因为不清楚视图的层次结构是什么

首先确保您使用的是正确的导航控制器:

UINavigationController * websites = viewController.navigationController;
[websites pushViewController:anotherViewController animated:NO];
我也不知道为什么你的注销功能这么复杂。你在哪里执行它? 无论如何,在导航控制器上显示视图控制器并将其弹出到根目录是不好的。而且它们都是动画

       if([top class] == [SitesViewController class]){
                            BackupsViewController *backup = [[BackupsViewController alloc] initWithStyle:UITableViewStyleGrouped andID:cg_id];
                            [websites pushViewController:backup animated:NO];
                            [websites pushViewController:details_controller animated:YES];

请提供更多代码。

问题是tabbar控制器在我的nosie下发生了变化;因此什么也没有发生。但是为什么呈现一个视图控制器然后弹出到根目录不好呢?它没有任何作用。您将新的控制器呈现给堆栈,然后接下来要做的就是将所有内容从堆栈中抛出。从一开始就要扎根。无论如何,如果要为这两个动作设置动画,至少要在完整块中执行第二个动作。