从视图中以编程方式删除堆栈时遇到问题。我做的事情有点复杂,这肯定无助于解决问题。我想做的是:
-
用户位于选项卡视图控制器的一个选项卡中。
-
用户从包含URL的表中选择项。
-
-
将弹出UIWebView堆栈上的所有视图,显示UIWebView。
我的第三步工作得很好。但是,似乎无法从堆栈中弹出任何视图。以下是我的尝试:
- (void)openAndDisplayURL:(NSString*)URL {
tabBarController.selectedIndex = 0;
UIViewController *selectedController = tabBarController.selectedViewController;
if ([selectedController isKindOfClass:[UINavigationController class]]) {
UINavigationController *controller = (UINavigationController*)selectedController;
NSArray *views = controller.viewControllers;
for (id view in views) {
if([view respondsToSelector:@selector(openURLWithString:)]) {
NSString *completeURL = [NSString stringWithFormat:@"http://%@",URL];
[view openURLWithString:completeURL];
} else if ([selectedController isKindOfClass:[UINavigationController class]]) {
UINavigationController *subcontroller = (UINavigationController*)selectedController;
[subcontroller.navigationController popViewControllerAnimated:NO];
}
}
}
}
调试显示所需类型的预期视图数。它正确地进入
else
popViewControllerAnimated:
什么都不做。