2

UIViewControllerをナビゲーションコントローラーにプッシュしてから、UIBarButtonItemをナビゲーションバーに追加して、カウントダウンタイマーを表示できるようにしようとしています。

UINavigationController *navController = [[Session sharedInstance] getNavigationController];
GamePlayViewController *gameController = [[GamePlayViewController alloc] initWithNibName:@"GamePlayViewController" bundle:nil ];

UIBarButtonItem *timerBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

gameController.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:timerBtn, nil];

[navController pushViewController:gameController animated:YES];

上記のコードを使用すると、機能しません。また、コントローラー自体のViewDidloadメソッドからこれを実行しようとしましたが、サイコロはありませんでした。rightBarButtonItemを使用しようとしましたが、次のようなエラーが発生します

 "to uncaught exception 'NSInvalidArgumentException', reason: 'Fixed and flexible space   items not allowed as individual navigation bar button item. Please use the leftBarButtonItems (that's plural) property.'
*** First throw call stack:"




UIBarButtonItem *timerBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

self.navigationItem.rightBarButtonItem = timerBtn;
4

1 に答える 1

3

IBに移動して、フレキシブルスペースまたは固定スペースを追加しようとすると、これら2つのオブジェクトの詳細が表示され、これら2つはUIToolBarに追加されるUIBarButtonItemにのみ追加でき、ナビゲーションには追加できないことがわかります。バー!

したがって、最初にコードを次のように変更することをお勧めします。

UIBarButtonItem *timerBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStylePlain target:nil action:nil];
于 2013-03-10T20:23:28.247 に答える