2016-01-26 144 views
0

我正在添加一些子視圖到主視圖控制器。當我添加其中一個子視圖時,我創建了一個自定義後退按鈕,以便它將返回到主視圖控制器,而不是導航堆棧中的先前視圖控制器。我可以通過編程添加它,但似乎無法弄清楚如何刪除它。任何幫助是極大的讚賞!如何刪除自定義導航欄後退按鈕

func createCustomBackButton() { 

       self.navigationItem.hidesBackButton = true 
       let customFont = UIFont.systemFontOfSize(26.0) 
       UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont], forState: UIControlState.Normal) 

       // customBackButton is a property I set for UIBarButtonItem 
       customBackButton = UIBarButtonItem(title: "<", style: .Plain, target: self, action: "back:") 
       self.navigationItem.leftBarButtonItem = customBackButton 
     } 


      func back(sender: UIBarButtonItem) { 
       UIView.animateWithDuration(0.3, animations: { 
       self.containerView.alpha = 0 
       }, completion: { finished in 
        self.view.sendSubviewToBack(self.containerView) 
        self.navigationItem.hidesBackButton = false 

        // what do I do on this line to get this to disappear or set to nil?? 
        self.customBackButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.z, target: self, action: nil) 

        // clears out prior view that was there to free up memory 
        for view in self.containerView.subviews { 

         view.removeFromSuperview() 
        } 
       }) 
      } 
+1

'self.navigationItem.leftBarButtonItem = nil'應該做你想做的事。 – Caleb

+1

正是我所需要的。如果您將此作爲答案提交,我會接受它。感謝您的幫助@Caleb – tahoecoop

回答

1

使用self.navigationItem.leftBarButtonItem = nil會將leftBarButtonItem重置爲默認值。

0

您應該使用unwind segue。如果您使用的是故事板,請將其從「目標視圖控制器」拖到看起來像您要放鬆的VC的橫向共享按鈕(退出按鈕)的地方。將它命名爲任何你喜歡的話,我們把它叫做「放鬆」

,然後在同一個VC呼籲:

self.performSegueWithIdentifier("unwind", sender: self) 

在VC要放鬆回:

@IBAction func unwindToMapSegue(segue: UIStoryboardSegue) { 
    // do something 
} 
+0

感謝您的迴應。所以基本上我在後退按鈕中創建自定義功能,以便它在點擊自定義後退按鈕時基本上會重新分配子視圖。但是,如果沒有顯示子視圖,我希望標準後退按鈕可以操作並轉到堆棧上的先前VC。我只需要弄清楚如何在我退出子視圖後刪除此自定義後退按鈕。再次感謝! – tahoecoop

+0

在你的'createCustomBackButton'方法中,你可以做一些類似於如果subViewsExist {backButton} else {otherBackButton}而不是在你的'back'選擇器 – jasonnoahchoi