UINavigationController推送UIViewController,没有任何反应

时间:2013-07-19 18:29:50

标签: ios6 uiviewcontroller uinavigationcontroller pushviewcontroller

以下是相关的代码行:       ...

       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是details_controller。所以我知道它被推到了堆栈上。然而,一切都没有发生。我和我开始的观点相同。我在想,也许是因为我没有获得所有数据。但这并不能解释(a)为什么它第一次起作用,(b)为什么它不显示空白页面。

1 个答案:

答案 0 :(得分:0)

很难说从代码中出现了什么问题,不清楚视图的层次结构是什么。

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

UINavigationController * websites = viewController.navigationController;
[websites pushViewController:anotherViewController animated:NO];

此外,我不确定您的退出功能为何如此复杂。你在哪里执行它? 无论如何,在导航控制器上呈现视图控制器并将其弹出到root是不好的。而且他们都是动画......

请提供更多代码。