Ios 设置子视图';用objective-c编程的s视图控制器

Ios 设置子视图';用objective-c编程的s视图控制器,ios,objective-c,storyboard,Ios,Objective C,Storyboard,我有一个UIViewController(MainViewController),它管理一个包含两个子视图的视图,我使用脚本创建了这两个子视图。现在我希望这两个子视图由它们自己的模型控制器管理,因此应用程序完成的大部分工作都是分布式的,而不是集中在这一个控制器上 我尝试在视图控制器上设置视图,但它不起作用(至少其他控制器上的viewDidLoad没有被调用,尽管视图显示)。在MainViewController的viewDidLoad中,我有以下内容: MainNavigationViewCon

我有一个UIViewController(
MainViewController
),它管理一个包含两个子视图的视图,我使用脚本创建了这两个子视图。现在我希望这两个子视图由它们自己的模型控制器管理,因此应用程序完成的大部分工作都是分布式的,而不是集中在这一个控制器上

我尝试在视图控制器上设置视图,但它不起作用(至少其他控制器上的
viewDidLoad
没有被调用,尽管视图显示)。在
MainViewController
viewDidLoad
中,我有以下内容:

MainNavigationViewController* navigationViewController = [[MainNavigationViewController alloc] init];
MainContentViewController* contentViewController = [[MainContentViewController alloc] init];

navigationViewController.view = self.navigationView;
contentViewController.view = self.contentView;

我该怎么做?还有,这是个好主意吗?

我想你正在寻找类似的产品

[navigationViewController pushViewController:contentViewController animated:YES];

NavigationViewController有一组视图控制器。您必须将视图控制器推入导航视图堆栈

我想你在找类似的东西

[navigationViewController pushViewController:contentViewController animated:YES];

NavigationViewController有一组视图控制器。您必须将视图控制器推入导航视图堆栈

我想你在找类似的东西

[navigationViewController pushViewController:contentViewController animated:YES];

NavigationViewController有一组视图控制器。您必须将视图控制器推入导航视图堆栈

我想你在找类似的东西

[navigationViewController pushViewController:contentViewController animated:YES];

NavigationViewController有一组视图控制器。您必须将视图控制器推入导航视图堆栈

在情节提要中,可以将这些子视图放置在容器视图控件中,容器视图控件定义了视图控制器的一个区域,该区域可以包含子视图控制器。然后让子视图控制器管理子视图。

在情节提要中,可以将这些子视图放置在容器视图控件中,容器视图控件定义了视图控制器的一个区域,该区域可以包含子视图控制器。然后让子视图控制器管理子视图。

在情节提要中,可以将这些子视图放置在容器视图控件中,容器视图控件定义了视图控制器的一个区域,该区域可以包含子视图控制器。然后让子视图控制器管理子视图。

在情节提要中,可以将这些子视图放置在容器视图控件中,容器视图控件定义了视图控制器的一个区域,该区域可以包含子视图控制器。然后让子视图控制器管理子视图。

viewDidLoad
肯定不会被调用,因为视图已经加载。如果没有调用其他方法(ViewWillExample等),则可以将调用转发给其他ViewController

我会选择另一种方式,即将已经具有viewController的视图添加到MainViewController。我不完全确定这一点,但我认为ViewController方法将以这种方式调用

其工作应如下:

为包含导航视图的MainNavigationViewController创建情节提要。为包含内容视图的MainContentViewController创建另一个。 从MainViewController的情节提要中删除所有子视图,但将navigationView和contentView保留为空占位符。 为mainViewController中的ViewController创建两个属性以存储其引用。 在主ViewController的
viewDidLoad
中,通过创建其他两个ViewController

self.mainNavigationController = [[UIStoryboard storyboardWithName:@"MainNavigationControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainNavigationControllerIdentifier"]; 
self.mainContentController = [[UIStoryboard storyboardWithName:@"MainContentViewControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainContentViewControllerIdentifier"]; 
并将其视图添加到占位符中:

[self.navigationView addSubview: mainNavigationController.view];
[self.contentView addSubview: mainContentController.view];

我希望您正在使用自动布局,以便视图可以调整其大小,否则您必须在
viewWillLayoutSubviews
中设置它们的帧,以匹配父视图的帧。

viewDidLoad
肯定不会被调用,因为视图已经加载。如果没有调用其他方法(ViewWillExample等),则可以将调用转发给其他ViewController

我会选择另一种方式,即将已经具有viewController的视图添加到MainViewController。我不完全确定这一点,但我认为ViewController方法将以这种方式调用

其工作应如下:

为包含导航视图的MainNavigationViewController创建情节提要。为包含内容视图的MainContentViewController创建另一个。 从MainViewController的情节提要中删除所有子视图,但将navigationView和contentView保留为空占位符。 为mainViewController中的ViewController创建两个属性以存储其引用。 在主ViewController的
viewDidLoad
中,通过创建其他两个ViewController

self.mainNavigationController = [[UIStoryboard storyboardWithName:@"MainNavigationControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainNavigationControllerIdentifier"]; 
self.mainContentController = [[UIStoryboard storyboardWithName:@"MainContentViewControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainContentViewControllerIdentifier"]; 
并将其视图添加到占位符中:

[self.navigationView addSubview: mainNavigationController.view];
[self.contentView addSubview: mainContentController.view];

我希望您正在使用自动布局,以便视图可以调整其大小,否则您必须在
viewWillLayoutSubviews
中设置它们的帧,以匹配父视图的帧。

viewDidLoad
肯定不会被调用,因为视图已经加载。如果没有调用其他方法(ViewWillExample等),则可以将调用转发给其他ViewController

我会选择另一种方式,即将已经具有viewController的视图添加到MainViewController。我不完全确定这一点,但我认为ViewController方法将以这种方式调用

其工作应如下:

为包含导航视图的MainNavigationViewController创建情节提要。为包含内容视图的MainContentViewController创建另一个。 从MainViewController的情节提要中删除所有子视图,但将navigationView和contentView保留为空占位符。 为mainViewController中的ViewController创建两个属性以存储其引用。 在主ViewController的
viewDidLoad
中,通过创建其他两个ViewController

self.mainNavigationController = [[UIStoryboard storyboardWithName:@"MainNavigationControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainNavigationControllerIdentifier"]; 
self.mainContentController = [[UIStoryboard storyboardWithName:@"MainContentViewControllersStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"MainContentViewControllerIdentifier"]; 
并将其视图添加到占位符中:

[self.navigationView addSubview: mainNavigationController.view];
[self.contentView addSubview: mainContentController.view];
我希望您正在使用自动布局,以便视图可以调整其大小,否则您将