右側のナビゲーション バー ボタンを無効に設定すると、無効状態をユーザーに知らせるために色が変わりません。
グレー表示されず、「強調表示」されたままです。
次のように、ストーリーボードにボタンを設定しました。
self.navigationController.navigationItem.rightBarButtonItem.enabled = NO;
ボタンの状態を視覚的に変更するにはどうすればよいですか?
ありがとうございました!
右側のナビゲーション バー ボタンを無効に設定すると、無効状態をユーザーに知らせるために色が変わりません。
グレー表示されず、「強調表示」されたままです。
次のように、ストーリーボードにボタンを設定しました。
self.navigationController.navigationItem.rightBarButtonItem.enabled = NO;
ボタンの状態を視覚的に変更するにはどうすればよいですか?
ありがとうございました!
関連する回答はどれも、探していた結果を生成できませんでしたが、ナビゲーションボタンにテキスト属性を設定することでこれを解決できました。
[navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:enabledColor} forState:UIControlStateNormal];
[navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:disabledColor} forState:UIControlStateDisabled];
次に、次のことを行うだけで、ユーザーの操作性と色が自動的に変更されます。
navButton.enabled = YES; // or NO
この回答はVijay-Apple-Dev.blogspo の功績によるものです。
self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;
これにより、ボタンが自動的にグレー表示され、無効になります。
注: self.navigationController.navigationItem.rightBarButtonItem.enabled = NO;という質問の前提。 コードで試してみたところ、効果がないことがわかりました。
Vijay に感謝します。
self.navigationItem.hidesBackButton = YES;
Apple は戻るボタンを無効にすることを好まないためです。
個人的には、右上のボタンを無効にし、[戻る] ボタンを非表示にして、ユーザーがボタンを押さないようにし、選択したときに再度有効にします。
質問へのリンクはこちら
この回答は完全を期すために投稿されているため、将来のユーザーはこのページを超えて検索を続ける必要はありません。
次のように更新します。
self.navigationItem.leftBarButtonItem?.isEnabled = true
このようなことを試してください:
[[self.navigationItem.rightBarButtonItems objectAtIndex:0] setEnabled:NO];
次のように色合いを手動で変更することができます。
self.navigationItem.rightBarButtonItem.tintColor = [UIColor grayColor];
これはテストされていないコードですが、動作するはずです。また、再び有効になったら忘れずに元に戻してください。