3177112624 d1bce25b0c

こないだちょっと思うことがあって、self.navigationController.navigationBarじゃなく、UINavigationBarでナビゲーションバーを表示しようと思ったのですが、loadViewに書くと必ずEXC_BAD_ACCESSになるんですよねー。。。

viewDidLoadだと落ちない。

- (void) loadView {
UINavigationBar* navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
UINavigationItem* navigationBarTitle = [[UINavigationItem alloc] initWithTitle:@"目次"];
UIBarButtonItem* closeBtn = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(closeAction:)];
navigationBarTitle.rightBarButtonItem = closeBtn;
[navigationBar pushNavigationItem:navigationBarTitle animated:YES];
[self.view addSubview:navigationBar];
}

このように、UINavigationBarをloadView上に書いたのですが、必ず表示前に落ちちゃうんですねー。

いったい何が原因か分からず四苦八苦してたのですが、ためしにviewDidLoadに書いたら落ちなかった・・・。

なんでだろう?(´・ω・`)

追記: [super loadView];が無かったからみたいです!

【関連】UIAlertView+UITextField表示中に通知が来た場合、キーボードの裏に隠れてしまうバグの修正方法
【関連】【Objective-C】UISwipeGestureRecognizerをつかってiMessageのようにスワイプダウンでキーボードを閉じる方法