屏幕上有多个ViewControllers

时间:2012-10-04 07:17:07

标签: iphone ios uiviewcontroller uinavigationcontroller uitabbar

我想在窗口上放置两个UIViewControllers(如下所示)。是否可以将其设置为每个视图分别由其自己的控制器控制? enter image description here

在app委托中,我按以下方式添加子视图

TabBarViewController *tabBarVC = [[TabBarViewController alloc] init];
CGRect frame = tabBarVC.view.frame;
frame.origin.y = self.window.bounds.size.height - frame.size.height;
tabBarVC.view.frame = frame;
[self.window insertSubview:tabBarVC.view aboveSubview:tabVC.view];

它加载,但当我点击按钮(IBAction),或做任何需要控制器的事情时,应用程序崩溃。我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

为tabBarVC创建iVar或属性的强引用,并更改此行:

TabBarViewController *tabBarVC = [[TabBarViewController alloc] init];

要:

tabBarVC = [[TabBarViewController alloc] init];

或者

self.tabBarVC = [[TabBarViewController alloc] init];

答案 1 :(得分:1)

是的,你可以..!将要显示的控制器显示为要显示的视图控制器的iVars。然后只需使用

[MainController addSubview:desiredConroller1.view];
[MainController addSubview:desiredConroller2.view];

您可以使用

从故事板加载控制器
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard_name" bundle:nil];
   desiredController1 =  [membershipStoryboard instantiateInitialViewController];

您也可以使用instantiateViewControllerWithIdentifier: