3

我有一个 AnimalViewController。它是一个基本视图控制器。我在 UIStoryBoard 中也有 AnimalViewController 场景。

我有一个关于继承的问题。

@interface BearViewController : AnimalViewController
@interface LionViewController : AnimalViewController

是否可以使用 AnimalViewController 场景实例化 BearViewController?

PS BearViewController 和 LionViewController 与 AnimalViewController 具有相同的接口。

4

2 回答 2

2

解决方案是使用 xib 代替情节提要。

BearViewController *bearVC = [[BearViewController alloc] initWithNibName:@"Animal" bundle:nil];
LionViewController *lionVC = [[LionViewController alloc] initWithNibName:@"Animal" bundle:nil];
于 2012-10-29T06:55:04.477 回答
-1

您可以执行以下操作,但我认为情节提要并非旨在执行此类操作,您仍将拥有AnimalViewController刚刚转换为的对象,subclass因此基本上您将一无所获(除了不同的指针类型)并在调用 any 时出现运行时崩溃BearViewController稍后定义的方法:

BearViewController *bearViewController = [storyboard instantiateViewControllerWithIdentifier:@"AnimalViewController"];

[[self navigationController] pushViewController:bearViewController animated:YES];
于 2012-10-26T10:36:51.403 回答