私はiOS開発を初めて使いました。これは簡単な質問かもしれません。私のアプリケーションには、同様のプロパティを共有する多くのビューコントローラがあります。 UIViewControllerをサブクラス化するベースビューコントローラクラスを作成しました。他のすべてのビューコントローラは、ベースビューコントローラをサブクラス化します。ただし、ベースビューコントローラクラスで設定したプロパティは継承されません。たとえば、ナビゲーションバーのボタンはすべて緑色である必要がありますが、アプリを作成するときはデフォルトの青色です。ベースUIViewControllerクラスからプロパティを継承できません
ここでは、ベース・ビュー・コントローラ・クラスです:
class BaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem?.tintColor = UIColor.greenColor()
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.greenColor()
}
これは、上記の基本ビューコントローラのサブクラスほかのView Controllerのコードです:私は、ウェブを検索し、SOのためにきた
class AboutViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = NSLocalizedString("About", comment: "About page title")
}
を同様の質問があったが、答えを見つけることができなかった。私は基本的に私のコードに間違いがないとは思わない。私はXcode 7.2.1を使用しており、iOS 8+でテストしています。 Xcode 7.2.3ベータ版でもテストされていますが、同様の結果が得られました。
新しいプロジェクトを作成しようとしましたが、問題を再現できませんでした。説明したように、新しいプロジェクトを作成して 'viewDidLoad'をオーバーライドすることで、自分自身で確認できます。これは、問題がコードベースのどこか他の場所にあることを意味します。 –
@RudolfAdamkovicあなたのご意見ありがとうございます。私はちょうど新しいマスター/ディテールプロジェクトを作成しました。追加したのは、UITableViewControllerをサブクラス化する新しいベーステーブルビューコントローラクラスを作成することだけでした。 viewDidLoadメソッドをオーバーライドして、左と右のbarButtonItemを特定の色に設定します。私はMasterViewControllerクラスをこのベースビューコントローラから継承させ、色はまだ継承されませんでした。私はここで何かを見逃しているかもしれないが、まだそれを見ているかもしれないと思う。 – ussd84