2017-02-27 45 views
0

我想在我的UIViewControllers之間創建segues,但是從UITableViewCell和UIButton創建segue時遇到了一些困難。爲什麼我的UIButton segue的行爲不像UITableViewCell segue?

當我通過從UITableViewCell到UIViewController的故事板創建show detail segue時,它完美地工作,並且我顯示後退按鈕。但是當我嘗試創建一個從UIButton到UIViewController的show detail細節時,它不會註冊導航堆棧並在沒有後退按鈕的情況下以模態方式呈現屏幕。

如何才能成功顯示從UIButton到視圖控制器的細節?我是iOS新手,無法確定UIButton segue與UITableViewCell segue的行爲不同。

在此先感謝您的幫助!

回答

0

不要手動連接segue通過按鈕操作。

這是假設有這個按鈕的viewController是導航控制器

@IBAction func myButtonTapped(_ sender: Any) { 
    let vc = self.storyboard!.instantiateViewController(withIdentifier: "YOUR STORYBOARD IDENTIFIER GOE HERE") 
    self.show(vc, sender: self) 
} 

如果你想去你必須指定其索引標籤欄控制器的選項卡的根視圖控制器。我認爲你可以在故事板中設置它,但是我只是在0的左邊,然後它們依次上升。所以在下面的例子中,我想通過模態轉換進入標籤欄控制器的第二個選項卡。我假設你可以像上面的例子那樣使用show我從來沒有做過。

let tbc = self.storyboard!.instantiateViewController(withIdentifier: "MyTabController") as! UITabBarController 
     tbc.selectedIndex = 1 // this is 2nd tab index.. start at 0 
     tbc.modalPresentationStyle = .overCurrentContext 
     tbc.modalTransitionStyle = .coverVertical 
     self.present(tbc, animated: true, completion: { finished in 
      // you can also do some completion stuff in here if you require it. 
      // self.view.removeFromSuperview() 
      // self.navigationController?.navigationBar.removeFromSuperview() 

     }) 
+0

謝謝,這一直是非常有幫助的。我的一個segues從沒有標籤欄控制器的視圖控制器轉到具有標籤欄控制器的視圖控制器,只有在推動標籤欄不顯示。你知道我怎麼能夠讓標籤欄顯示出來嗎? –

+0

基本上你必須通過標籤欄控制器到你想要的標籤索引。虐待添加我的答案的例子。 – WanderingScouse

0
let vc = self.storyboard!.instantiateViewController(withIdentifier: "StoryBoardID") 
self.navigationController?.pushViewController(vc, animated: true) 
+1

請閱讀[回答]。 – Mistalis