单击按钮时 UIViewController 设置新的根视图
UIViewController setting new root view when click button
我有一个按钮的代码,单击该按钮会将用户带到主页,这是一个我命名为 'HomePageViewController' 的 UIViewController,我还设置了 class,如下所示:
class set up.
按钮代码位于名为 'SignInViewController' 的第一个(初始控制器)UIViewController 中,单击时我希望 HomePageViewController 替换 SignInViewController:
@IBAction func btnSignInPressed(_ sender: UIButton) {
// if true take to home page
DispatchQueue.main.async {
let home = self.storyboard?.instantiateViewController(identifier: "HomePageViewController") as!
HomePageViewController
// replace the homepage as the root page
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = home
}
}
但是,当我 运行 在刺激器中使用此按钮时,当我单击它时,该按钮没有任何作用。请注意,我使用的是标签栏控制器,所以我尝试将根设置为 UIBarController,但这也没有用。
在您的 appDelegate 中,添加 属性:
final var window: UIWindow?
这样称呼它
@IBAction func btnSignInPressed(_ sender: UIButton) {
// if true take to home page
DispatchQueue.main.async {
let home = self.storyboard?.instantiateViewController(identifier: "HomePageViewController") as!
HomePageViewController
let window = UIApplication.shared.delegate!.window!!
window.rootViewController = nil
window.rootViewController = home
UIView.transition(with: window, duration: 0.4, options: [.transitionCrossDissolve], animations: nil, completion: nil)
}
}
我有一个按钮的代码,单击该按钮会将用户带到主页,这是一个我命名为 'HomePageViewController' 的 UIViewController,我还设置了 class,如下所示: class set up.
按钮代码位于名为 'SignInViewController' 的第一个(初始控制器)UIViewController 中,单击时我希望 HomePageViewController 替换 SignInViewController:
@IBAction func btnSignInPressed(_ sender: UIButton) {
// if true take to home page
DispatchQueue.main.async {
let home = self.storyboard?.instantiateViewController(identifier: "HomePageViewController") as!
HomePageViewController
// replace the homepage as the root page
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = home
}
}
但是,当我 运行 在刺激器中使用此按钮时,当我单击它时,该按钮没有任何作用。请注意,我使用的是标签栏控制器,所以我尝试将根设置为 UIBarController,但这也没有用。
在您的 appDelegate 中,添加 属性:
final var window: UIWindow?
这样称呼它
@IBAction func btnSignInPressed(_ sender: UIButton) {
// if true take to home page
DispatchQueue.main.async {
let home = self.storyboard?.instantiateViewController(identifier: "HomePageViewController") as!
HomePageViewController
let window = UIApplication.shared.delegate!.window!!
window.rootViewController = nil
window.rootViewController = home
UIView.transition(with: window, duration: 0.4, options: [.transitionCrossDissolve], animations: nil, completion: nil)
}
}