[英]ViewDidLoad not called on custom objects in Storyboard
我终于切换到情节提要,并且在加载自定义控制器时遇到了问题,这在使用界面生成器时非常容易做到。
我有两个组成的ViewControllerOne :一个UIView和UITableView作为子视图。
我希望UITableView由自定义tableview控制器控制。 如果这是“接口”构建器,我将把一个tableview控制器放到XIB上,链接到定制控制器并进行连接,就可以完成了。
使用情节提要,我认为无法将UIViewController / UITableViewController放到已经具有视图控制器的场景上,我依靠Objects来实现这一点。
因此,我在场景上添加了一个Object并将其链接到我的自定义tableview控制器。 我为UITableView设置了委托/日期源,以指向自定义控制器。 最后,我将UITableViews插座连接到自定义控制器。
当我对此进行编译时,将调用(针对表视图的)自定义控制器委托,但从未调用过viewDidLoad。
我可以调用viewDidLoad的唯一方法是将UITableView从ViewControllerOne中移出。 我的理解是,即使场景有一个视图控制器,我仍然可以使用自定义控制器来操作子视图。
我是否误解了某件事,或者对此有解决方案?
一些截图
那有一些魔术。 从awakeFromNib调用self.view
,流程将返回到轨道
- (void)awakeFromNib
{
[super awakeFromNib];
// here comes the magic - call self.view and view will load as expected
NSLog(@"awakeFromNib %@", self.view)
}
您可以从initWithNibName:bundle调用它:
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
NSLog(@"awakeFromNib %@", self.view);
}
return self;
}
关键是调用self.view,因为显然内部完成了一些操作。
如果我正确理解了您的问题:
1打开情节提要,然后导航到您希望成为自定义类型的表视图控制器。
2单击右侧面板中的身份检查器。
3将课程设置为应有的水平。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.