私の現在のプロジェクトでは、ナビゲーション コントローラーに基づくアプリがあります。アプリの一部のビューでは、ビューの下部にツールバーが必要です。次のプログラムでツールバーを作成しています(テーブルビューコントローラーのviewDidLoadから抜粋):
UIBarButtonItem *reloadButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshList)];
[reloadButton setTitle:@"Refresh"];
[reloadButton setTintColor:[UIColor whiteColor]];
self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;
[self.navigationController.toolbar sizeToFit];
CGFloat toolbarHeight = [self.navigationController.toolbar frame].size.height;
[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
438,
CGRectGetWidth(self.view.bounds),
toolbarHeight)];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:reloadButton, nil];
[self setToolbarItems:toolbarItems];
[self.navigationController setToolbarHidden:NO];
これは、ほとんどのビューでうまく機能しています。ただし、現在、同一のコードを使用して別のビューに組み込んでいます。そのコントローラーでは、ツールバーはビューの下部から約 1 インチ上に表示されます。他のビュー コントローラーのように、ビューの下部にスナップしません。問題のあるビューに移動すると、他のビューの他のツールバーが同じ動作を示し始めます。これはシミュレーターでのみ発生しており、物理デバイスでは発生していません。ただし、現在、物理デバイスとして iPhone 4 しか持っていません。これはシミュレーターのバグですか、それともどこかに問題があることを示していますか? ありがとう!