3

AnimalViewController があります。それはベースView Controllerです。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ので、基本的に何も得られず (異なるポインター型を除く)、何かを呼び出したときにランタイムクラッシュが発生します。BearViewController後で定義されたメソッドの:

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

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