以下是相关的代码行: ...
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)为什么它不显示空白页面。
答案 0 :(得分:0)
很难说从代码中出现了什么问题,不清楚视图的层次结构是什么。
首先确保使用正确的导航控制器:
UINavigationController * websites = viewController.navigationController;
[websites pushViewController:anotherViewController animated:NO];
此外,我不确定您的退出功能为何如此复杂。你在哪里执行它? 无论如何,在导航控制器上呈现视图控制器并将其弹出到root是不好的。而且他们都是动画......
请提供更多代码。