0

Answer View Controller(回答を表示するView Controller)に戻るボタンがあります。ユーザーが作成した戻るボタンを押すと、「戻る」というタイトルと空のテーブルビューだけを持つビューに切り替わります。回答が必要なすべての質問が表示される場所のメイン ビュー。なぜこうなった?その非常に短いことですが、間違いなく注目に値します!

 UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 48)];
navBar.delegate = self;
UINavigationItem *backItem = [[UINavigationItem alloc] initWithTitle:@"Back"];
[navBar pushNavigationItem:backItem animated:NO];

UINavigationItem *topItem = [[UINavigationItem alloc] initWithTitle:@"Question"];
[navBar pushNavigationItem:topItem animated:NO];
topItem.leftBarButtonItem = nil;

[self.view addSubview:navBar];


- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{

   ViewController *controller = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
   controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
   [self presentViewController:controller animated:YES completion:nil];
   return true;
}

- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item
{

   ViewController *controller = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
   controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
   [self presentViewController:controller animated:YES completion:nil];
}

戻るボタンのあるビューの画像 発生している問題の写真

4

1 に答える 1

2

独自のインスタンスを作成していますUINavigationBarUINavigationItem、おそらくそうすべきではありません。あなたが説明する状況は、まさに a のUINavigationController目的です。を使用するUINavigationControllerと が作成され、画面に表示される (ナビゲーション コントローラーにプッシュされる)UINavigationBarそれぞれUIViewControllerに独自のものがあります (ビュー コントローラーのUINavigationItemからタイトルが取得されます)。title

「戻る」というタイトルの空の「ビュー」を取得する理由は、それを作成しているためです。

UINavigationItem *backItem = [[UINavigationItem alloc] initWithTitle:@"Back"];
[navBar pushNavigationItem:backItem animated:NO];

これらすべてを省略しUINavigationController、質問のビュー コントローラーを作成してルート ビュー コントローラーにし、ナビゲーション コントローラーを画面に追加します。次に、質問が回答されたら、回答ビュー コントローラーをプッシュします。

[self.navigationController pushViewController:answerViewController animated:YES];
于 2013-05-13T22:45:44.690 に答える