我可以对从 Storyboard 实例化的 ViewController 进行子类化吗?

Ben*_*ynn 5 objective-c uistoryboard

我发现当我初始化一个新的子类时,我得到了返回的父类的对象。

家长:

- (id)init
{  
    self = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"EditController"];        
    return self;
}
Run Code Online (Sandbox Code Playgroud)

孩子:

- (id)init
{
    NSLog(@"New child");
    self = [super init];
    return self;
}
Run Code Online (Sandbox Code Playgroud)

如果我分配并初始化一个子级,它会显示New child但会返回父级类的对象。调用仅在子级中声明的方法会导致崩溃。

有人可以解释一下初始化过程是如何工作的,以及如何创建子对象吗?

Lvs*_*sti 0

我敢打赌崩溃是由父级init返回自动释放的EditController 实例引起的。不管怎样,为什么不直接在情节提要中将班级类型设置为孩子的班级类型呢?