【发布时间】:2013-06-27 06:41:47
【问题描述】:
我有 4 个 UIViewController 子类,分别命名为 AViewController、BViewController、CViewController、DViewController。
现在在工具栏中,单击 A,内容视图显示 AViewController 的视图,...等等。
我是一种懒惰的人,讨厌写4次“alloc]initwithnibname”代码,所以我写了以下代码在代码中创建它们。
- (void)addChildView:(UIViewController *)childViewController className:(NSString *)viewClassName{
if (childViewController != nil) {
// add view
[self.contentView addSubview:childViewController.view];
}else
{
// init.
Class v = NSClassFromString(viewClassName);
UIViewController *childViewControllerNew = nil;
childViewControllerNew = [[v alloc] initWithNibName:viewClassName bundle:nil];
[self.contentView addSubview:childViewController.view];
}}
但这不会创建任何 ViewController,调试时总是返回 nil。
你能告诉我是什么问题吗?我可以通过这种方法创建子类 UIViewController 吗?
提前致谢!
【问题讨论】:
-
创建后它是 nil,还是你没有保留它,所以它在方法结束时被销毁?
-
不是零。我会尝试保留它。谢谢。
-
哦,我的错!我太粗心了。 [self.contentView addSubview:childViewController.view] 应该是 [self.contentView addSubview:childviewControllerNew.view]。抱歉耽误您的时间。
-
仅此更改仍然不保留控制器,仅保留视图...
-
是的,这就是问题所在……正在研究如何保留控制器。
标签: ios uiviewcontroller