私のプロジェクト(プログラムで書かれています)では、いくつかのファイルでナビゲーションバーを隠し、他のファイルではナビゲーションバーの色を変更します。はい、私はいくつかの特定のナビゲーションバーを必要とするすべての単一のファイルにコードを書くだけでこれを行うことができますが、そのバグではなく、正しい方法です。すべてのナビゲーションバーを1つのファイルから制御する方法は?
UINavigationControllerのサブクラスを作成しようとしましたが、そこではすべてのviewControllersをループして特定のファイル内のナビゲーションバーを非表示にしますが、動作しません。
誰でも教えてもらえますか? 1つのファイルからすべてのナビゲーションバーの変更(アクション)を制御する正しい方法は何ですか?
ありがとうございます。
ハリーは、お返事ありがとうございました。私はあなたが提供したコードのいくつかの行を理解するのに問題があります。説明していただけますか?これはcode-id protocolVC =(id)コントローラです。 if([protocolVC barColor]){ UIColor * color = [protocolVC barColor]; //棒グラフを設定する } –
Jonagold
ありがとうございます! – Jonagold
このメソッドがしているのは、 'ViewController'がこのプロトコルの' MyProtocol'に準拠しているかどうかをチェックし、最初のif文がそれであるかどうかを調べることです。これで 'ViewController'が私たちのプロトコルに準拠していることがわかったので、' id protocolVC =(id)controller; 'を使ってプロトコルをキャストすることができます。 'この場合は' barColor'メソッドを呼び出します。プロトコルはオプションのメソッドを持つことができるので、 'ViewController'がこのメソッドを実装しているかどうかをチェックします。成功した場合は色があります。 @ Sergey –