我有一个项目是“标签栏控制器”应用程序。第一个按钮本质上是一个主屏幕。第二个显示内容的 UITableView。第三个按钮显示不同的 UITableView 等。
从第一个视图(主页)来看,我在页面上有一个按钮,它在功能上等同于选项卡控制器的第二个按钮。这是访问该 UITableView 的替代路径。我不想将按钮按下发送到 AppDelegate 的 UITabBarController。
我想要的 HomeViewController 中的代码基本上是这样的:
-(IBAction) touchInsideButton:(id)sender {
[self presentModalViewController: [appDelegate secondViewController] animated:YES];
}
或者
-(IBAction) touchInsideButton:(id)sender {
AppDelegate *appDelegate = (AppDelegate*) [[UIApplication sharedApplication] delegate];
[appDelegate launchSecondViewController: self];
}
其中,“launchSecondViewController”是(取消注释掉两行之一)
-(void) launchSecondViewController: (id) sender {
// [self.tabBarController presentModalViewController: secondViewController animated:YES];
// [self.tabBarController.navigationController pushViewController: secondViewController animated:YES];
}
无论如何,所有三种方法都会给出相同的错误:
2013-05-16 12:04:26.977 MyApp [55273:f803] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图以模态方式呈现活动控制器。” *首先抛出调用栈: