簡體   English   中英

無法在iOS中獲得任何導航項目

[英]Can't get any navigation item in iOS

我對導航欄有疑問。

據我從iOS上了解到:由segue打開的視圖控制器繼承了父視圖控制器的導航欄。 到目前為止,這正確嗎?

堆棧中是否有視圖控制器“擁有”復雜的segue堆棧中的導航欄(例如,打開的TabViewController打開的TableViewController ...)?

我經常遇到這樣的問題,即我不知道在哪里獲得實際的導航項以設置標題或條形按鈕項。

在這種情況下,我具有以下控制器:

  • TabBarController
  • EventPostsViewController >要顯示帖子列表,是TabBarController中的選項卡式視圖
  • CreatePostViewController >撰寫新文章

因此,在EventPostsViewController我可以執行此操作(並且可以運行):

class EventPostsViewController: UITableViewController {
    ...
    override func viewWillAppear(animated: Bool) {
        ...
        // This solution works, but only for EventPostsViewController
        self.tabBarController?.navigationItem.title = "text"

但是在CreatePostViewController內(由EventPostsViewController通過EventPostsViewController打開)中,這兩種解決方案都不起作用。

class CreatePostViewController: UIViewController {
    ...
    override func viewWillAppear(animated: Bool) {
        ...
        // Neither of these solutions works
        self.navigationItem.title = "Text"
        self.tabBarController?.navigationItem.title = "Text"
        self.navigationController?.navigationItem.title = "Text"

如何獲得實際的導航欄/ navigationItem?

我每次都會重復的愚蠢簡單錯誤:)

我忘記了使用界面生成器將自定義CreatePostViewController與視圖控制器鏈接。

在此處輸入圖片說明

該代碼現在可以工作:

class CreatePostViewController: UIViewController {
    ...
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated);
        self.navigationController?.setNavigationBarHidden(false, animated: false)

        // Set title
        self.navigationItem.title = "Write Post"

        // Add Submit button
        var submitButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "submitPost:")
        self.navigationItem.rightBarButtonItem = submitButton
    }
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM