我有基于窗口的应用程序,我添加了MainMenuViewController .h和.m,并在AppDelegate.m中我创建了tabBarController
MainMenuViewController *mmvc = [[MainMenuViewController alloc] init]; FavesViewController *fvc = [[FavesViewController alloc] init]; UITabBarController *tbc = [[UITabBarController alloc] init]; tbc.viewControllers = [NSArray arrayWithObjects:mmvc, fvc, nil]; [self.window addSubview:tbc.view];
在MainMenuViewController中,我有一个按钮,该动作是 - 转到其他视图
-(IBAction) goToTableView { MyViewController *mtvc = [[MyViewController alloc] init]; [self.view addSubview:mvc.view]; }
但是当我按下Main Menu tabBar项时,它会加载MyTableView,而不是MainMenuViewController。我希望当我按TabBar项MainMenu它将加载MainMenuViewController,而不是从MainMenuViewController加载的ViewController。怎么做?谢谢。
答案 0 :(得分:1)
有点难以理解您对代码的意图是什么......似乎您尝试执行以下操作:
如果以上是正确的,那么您的解决方案是设置标签栏项目以显示UINavigationController的实例,其中rootViewController属性指向MainMenuViewController类的实例。
然后在菜单视图控制器的动作处理程序中,您将执行以下操作:
MyViewController *mtvc = [[MyViewController alloc] init];
[self.navigationController pushViewController:mtvc animated:YES];
[mtvc release], mtvc = nil;
经验法则是当您想要遍历某种菜单细节层次结构时使用导航控制器。
答案 1 :(得分:0)
你做错了。您应该将MainMenuViewController放在UINavigationController中,然后使用[self.navigationController pushViewController:mtvc animated:YES]
添加它(如果需要以编程方式删除它,则使用[self.navigationController popViewControllerAnimated:YES]
),或者使用[self presentModalViewController:mtvc animated:YES]
添加它并[self dismissModalViewControllerAnimated:YES]
1}}删除它。
答案 2 :(得分:0)
为此添加navigationController然后写
[self.navigationContrller pushViewController:yourClassName animated:YES];