从一个视图控制器切换到另一个 - IoS

时间:2015-01-24 16:13:54

标签: ios iphone uinavigationcontroller uinavigationbar uinavigationitem

我正在努力实现以下目标。我有一个以编程方式创建的导航右栏项目。现在我有了一个新的视图控制器B.点击右边的菜单项我需要去查看没有通过segue连接的控制器B.我希望B有带后退按钮的导航栏。

任何人都可以指导如何做同样的事情

1 个答案:

答案 0 :(得分:1)

在ViewControllerA中创建导航栏项,如下所示:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Next", style: .Plain, target: self, action: "nextViewController")
}

在ViewControllerA中创建一个函数来处理触摸事件并导航到ViewControllerB:

func nextViewController() {
    println("go next")

    //TODO: get an instance of your ViewControllerB here...

    //navigate to it
    self.navigationController!.pushViewController(viewControllerB, animated: true)   
}

如何获取ViewControllerB的实例取决于您如何定义它。如果它在您的Main.storyboard中,您可以这样做:

let viewControllerB = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewControllerB") as? ViewControllerB

这要求您将ViewControllerB的Storyboard ID设置为" ViewControllerB"。通过在故事板中选择它并转到Identity检查器来执行此操作。

如果ViewControllerB是在具有相同名称的nib中定义的,请执行以下操作:

let viewControllerB = ViewControllerB(nibName: "ViewControllerB", bundle: nil)

如果您的ViewControllerB完全是用代码定义的,那么这应该可以获得它的实例:

let viewControllerB = ViewControllerB()