こんにちは。開発担当のICTFです。
UINavigationControllに複数のUIViewControllを追加すると、2画面目からナビゲーションバーの左側に自動的に戻るボタンが追加されますよね。
今回はこの自動的に追加された戻るボタンを「動的に」非表示にする方法をご紹介しようと思います。
スマートな方法ではないので、もし良い方法をご存知の方がいらっしゃいましたら是非ご教示くださいませ。
navigationItem.leftBarButtonItemにUIBarButtonItemを設定すると、自動追加の戻るボタンを上書きできるという仕様を利用します。
透明で操作ができないボタンを用意して、それをleftBarButtonItemに設定するだけですね。
コードは次のようになります。
ーーー 自動追加の戻るボタンを隠す ーーー
UIView* tempView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)] autorelease];
UIBarButtonItem* tempButton = [[[UIBarButtonItem alloc] initWithCustomView:tempView] autorelease];
tempButton.enabled = NO;
self.navigationItem.leftBarButtonItem = tempButton;
ーーー 自動追加の戻るボタンを再表示する ーーー
self.navigationItem.leftBarButtonItem = nil;
少し時間のかかる処理をしている最中、画面を戻られたら困る時などに如何でしょうか。
コメントする