为什么我的UIButton segue的行为不像UITableViewCell segue?

时间:2017-02-27 00:34:03

标签: ios swift uiviewcontroller segue

我正在尝试在我的UIViewControllers之间创建segues,但是在从UITableViewCell和UIButton创建segue时遇到了一些困难。

当我通过故事板从UITableViewCell到UIViewController创建一个show detail segue时,它工作得很好,我看到了后退按钮。但是当我尝试从UIButton创建一个show detail segue到UIViewController时,它不会注册导航堆栈并在没有后退按钮的情况下以模态方式显示屏幕。

如何从UIButton到viewcontroller成功展示详细信息?我是iOS新手,无法确定为什么UIButton segue的行为与UITableViewCell segue不同。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分: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()

        })

答案 1 :(得分:0)

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