我正在另一个故事板上创建欢迎页面 我还有一个跳过按钮,应该打开主故事板
在主故事板上,有一个minTabbar,每个选项卡都有其自己的导航栏
这是我在跳过按钮的acton中的代码
var window: UIWindow?
let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
@IBAction func skipButton(_ sender: UIButton) {
let todoTabBar = mainStoryBoard.instantiateViewController(withIdentifier: "mainTabBar") as! UITabBarController
todoTabBar.selectedIndex = 1
let nvc = todoTabBar.selectedViewController as? UINavigationController
nvc?.popToRootViewController(animated: false)
}
但是它不起作用,点击按钮后什么也没发生,您能帮我吗? 非常感谢
答案 0 :(得分:0)
此
let nvc = todoTabBar.selectedViewController as? UINavigationController
nvc?.popToRootViewController(animated: false)
使用当前未显示/呈现的vc进行播放,因此所有操作都将即时进行,请确保访问实际呈现的1或在这种情况下显示todoTabBar
如果您需要离开主讲台
self.present(todoTabBar,animated:true,completion:nil)
如果您需要让todoTabBar
成为唯一出现的1项
(UIApplication.shared.delegate as! AppDelegate).window!.rootViewController = todoTabBar
答案 1 :(得分:0)
您可以使用以下代码更改根视图控制器的窗口:
let stotyBoard = UIStoryboard(name: "OtherStoryBoard", bundle: nil)
if let otherVC = stotyBoard.instantiateViewController(withIdentifier: "OtherViewController")
as? OtherViewController {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window = UIWindow(frame: UIScreen.main.bounds)
appDelegate.window?.rootViewController = otherVC
otherVC.selectedIndex = 0
appDelegate.window?.makeKeyAndVisible()
}
看起来@Sh_khan也为您提供了解决方案,作为注释的一部分。请接受该答案。