私は、DetailsViewControllerをプッシュするUINavigationControllerを持っています。このDetailsViewControllerでは、すべてのUINavigationController(少なくともiPhone OS3.0以降)に付属するツールバーを使用したいと思います。UIToolbarのアイテムが表示されない
だから、のviewDidLoadで私DetailsViewControllerに私はUIBarButtonItemを作成し、私は配列に追加し、ナビゲーションコントローラにそれを引き渡す:
- (void) viewDidLoad {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *items = [NSArray arrayWithObject: item];
TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *navController = delegate.navigationController;
[navController setToolbarItems: items animated:NO];
[navController setToolbarHidden: NO animated: YES];
}
しかし、何らかの理由で、UIToolbarが上のアニメーション化されながら、画面には、アイテムはツールバーに追加されません。
これが機能するには、UIToolbarで行う必要のある特定の順序がありますか?
P .:アプリケーションが(強制)ランドスケープモードにあり、navigationController.viewに回転変換があります。それはそれと関係がありますか?
ショートコメント - それはリークされますようにUIBarButtonItem割り当てが見えること。おそらくそれをautoreleaseに設定するべきです。 –
ああ、そうです。しかし、NSArrayはそれを保持しているので、代わりに配列に追加した後に_item_をリリースすることができます。 – NSSec
私は、あなたがその1つのviewcontrollerのためにそれを表示することを許可したものを-1にしました。それはナビゲーションの寿命を通じて、後続のすべてのView Controllerに従わない...ほとんどのツールバーはやらないでしょう。 – Jann