我终于切换到了Storyboards,我在加载自定义控制器时出现问题,这在使用界面构建器时非常容易。
我有 ViewControllerOne ,有两个组件: UIView 和 UITableView 作为子视图。
我希望 UITableView 由自定义的tableview控制器控制。如果这是Interface builder我会将一个tableview控制器放到XIB上,链接到自定义控制器并建立连接,它就完成了。
使用storyboard,我不相信它可以将 UIViewController / UITableViewController 放到已经有视图控制器的场景上,我依靠Objects实现这一点。
所以我在场景中添加了一个Object并将其链接到我的自定义tableview控制器。我为 UITableView 设置了委托/日期源,以指向自定义控制器。我最终将UITableViews插座连接到自定义控制器。
当我编译它时,调用自定义控制器委托(对于表视图),但从不调用viewDidLoad。
我可以调用viewDidLoad的唯一方法是将UITableView移出ViewControllerOne。我的理解是,即使有一个场景的视图控制器,我仍然可以使用自定义控制器操纵子视图。
我误解了什么或是否有解决方案?
一些截图
答案 0 :(得分:2)
有一点神奇之处。从awakeFromNib调用self.view
,流程将返回到rails
- (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 :(得分:0)
如果我理解你的问题:
1打开故事板并导航到您希望成为自定义类型的表视图控制器。
2单击右侧面板中的身份检查器。
3将课程设置为应该是什么。