0
我在编程上从视图中删除堆栈时遇到了问题。我做的事情有点复杂,这肯定无助于事情。这是我想要做的:以编程方式弹出UIView失败
- 用户位于标签视图控制器的一个选项卡中。
- 用户从包含URL的表中选择项目。
- 应用程序切换到另一个选项卡视图,并将现有的UIWebView设置为选定的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:
什么也不做。
任何帮助,将不胜感激。