Photo by : rhodes’ Photostream
こないだちょっと思うことがあって、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のようにスワイプダウンでキーボードを閉じる方法