【发布时间】:2015-03-23 12:39:48
【问题描述】:
我正在努力实现以下目标。我有一个以编程方式创建的导航右栏项目。现在我有一个新的视图控制器 B。单击右栏菜单项时,我需要转到未通过 segue 连接的视图控制器 B。我希望 B 具有带有后退按钮的导航栏。
任何人都可以指导如何做同样的事情并有义务
【问题讨论】:
标签: ios iphone uinavigationcontroller uinavigationbar uinavigationitem
我正在努力实现以下目标。我有一个以编程方式创建的导航右栏项目。现在我有一个新的视图控制器 B。单击右栏菜单项时,我需要转到未通过 segue 连接的视图控制器 B。我希望 B 具有带有后退按钮的导航栏。
任何人都可以指导如何做同样的事情并有义务
【问题讨论】:
标签: ios iphone uinavigationcontroller uinavigationbar uinavigationitem
像这样在 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”。通过在情节提要中选择它并转到身份检查器来执行此操作。
如果您的 ViewControllerB 是在同名的 nib 中定义的,请执行以下操作:
let viewControllerB = ViewControllerB(nibName: "ViewControllerB", bundle: nil)
如果您的 ViewControllerB 完全在代码中定义,这应该可以获取它的实例:
let viewControllerB = ViewControllerB()
【讨论】: