ココアに慣れていないので、私はInterface Builder
、UIViewController
そして友達といくつかの問題を抱えています。
xibで定義されたUIViewController
サブクラスがありUIView
、コントローラーのビューアウトレットがビューに接続されています。xibの「ファイルの所有者」はmyViewcontrollerサブクラスとして設定されます。
この1つの例では、(メインビューコントローラーから)コントローラー/ビューをロードする次のコードが期待どおりに機能しません。
if ( self.myViewController == nil )
{
self.myViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:nil];
}
[self.navigationController
pushViewController:self.myViewController animated:YES];
MyViewControllerのメソッドに、ブレークポイントとログメッセージを配置して、何が起こっているかを確認しました。
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
NSLog(@"initWithNibName\n");
}
return self;
}
-(void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad\n");
}
期待される結果
-initWithNibName
とメソッドの両方-viewDidLoad
が呼び出され、myViewControllerのビューが表示されます。
観測結果
呼び出されるだけ-initWithNibName
で、ビューは表示されません。
私は何かを逃したことがありますか?誰かがチェックするものをお勧めできますか?(特に、驚くほど不透明なInterface Builderツールで)。