我有一个TabbarController
,是我app的入口点。所以我希望将此TabbarController
转换为ViewControllerA
。我执行了performSegue(with: "identifier")
。我可以访问ViewControllerA
,但当我到达ViewControllerA
时没有NavigationBar
我尝试将ViewControllerA
嵌入到NavigationController
1st中,故事板看起来像这样
TabbarController-> NavigationController - > ViewControllerA
通过这个,我可以访问ViewControllerA。但是我在prepareForSegue方法中遇到问题。因为我需要在segue中包含一个值,现在似乎没有包含该值。
我在prepareForSegue中的代码如下所示:
if let VcA = segue.destination.navigationController?.topViewController as? ViewControllerA {
VcA.postId = sender as! Int
}else{
print("cant work")
}
我还尝试将tabbarController嵌入到NavigationController中,但在Xcode-> Editor -> Embed
中该选项正在禁用。
所以我的问题是
如何从TabbarController转到ViewController,在目的地中,NavigationBar是可见的并且可以返回到前一个屏幕?
答案 0 :(得分:0)
假设您的故事板看起来类似于:
这是因为您在performSegue(with: "identifier")
中呼叫TabbarController
,其不直接连接到segue。您应该做什么,以便在连接到导航控制器(ViewControllerA
)的第一个视图控制器中实现它。所以,它将是 - 例如 - 像这样:
class ViewControllerA: UIViewController {
// ...
override func viewDidLoad() {
super.viewDidLoad()
performSegue(with: "identifier")
}
// ...
}
因此,您的segue应该从ViewControllerA
到所需的视图控制器。