2017-01-24 12 views
1

オプションビューでナビゲーションバーのタイトルを変更することはできません。私はストーリーボードを使用していません。ボタンも追加できません。タイトルナビゲーションを変更できませんコントローラ

これが私のアプリデリゲートコードです:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 
    let viewController = MenuTableViewController(nibName: nil, bundle: nil) //ViewController = Name of your controller 
    let navigationController = UINavigationController(rootViewController: viewController) 

    self.window = UIWindow(frame: UIScreen.main.bounds) 
    self.window?.rootViewController = navigationController 
    self.window?.makeKeyAndVisible() 
    return true 
} 

これは私のMenuTabeViewControllerが、これは私のオプションは、私は目を信じる

class optionsViewController: UINavigationController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    view?.backgroundColor = UIColor.white 
    //I've tried 3 solutions 
    self.navigationItem.title = "Options" 
    self.title = "Options" 
    self.navigationBar.topItem?.title = "Options" 
} 
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    dismiss(animated: true, completion: nil) 
} 

}

+0

ストーリーボードを使用していますか? –

+0

いいえ、私は言った;) –

+0

ops!申し訳ありません、私の悪い:D –

答えて

0

ファイルである

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Options", style: .plain, target: self, action: #selector(handleOptions)) 
} 

func handleOptions() { 
    let optionViewController = optionsViewController() 
    present(optionViewController, animated: true, completion: nil) 
} 

ファイルでありますeの問題は、新しいナビゲーション/表示コントローラを提示するときに正しく設定していないためです。

新しいUINavigationControllerを提示し、あなたがAppDelegateで以前に行ったように、あなたがUIViewControllerを作成し、rootViewControllerとして設定することをお勧めします。したがって、単一のnavコントローラの代わりに、OptionsNavControllerOptionsViewControllerのようなものが必要になります。

次に、OptionsViewControllerの簡易電話self.title = @"Options"で。

EDIT

私は以下の例を含めています。

func handleOptions() { 
    let optionsViewController = OptionsViewController() 
    let optionsNavController = UINavigationController(rootViewController: optionsViewController) 
    present(optionsNavController, animated: true, completion: nil) 
} 

上述したように、その後、OptionsViewControllerself.title = @"Options"を呼び出します。

+0

1つのビューに対して1つ以上のファイルを作成することは可能ですか? (オプションビュー)。そして私が 'let navigationController = UINavigationController'を入れている間にUIViewControllerを作成したかった理由が分かりません –

+0

私は質問を完全に理解しているかどうかわかりませんが、私の編集例を含めました。 – raidfive

+0

あなたの編集に含まれているコードを試しましたが、このエラーメッセージが表示されました: '***キャッチされていない例外のためにアプリケーションを終了しています 'NSInvalidArgumentException'、理由: 'ナビゲーションコントローラを押してもサポートされていません' ' –

関連する問題