swift - 我如何检查特定的 viewController 是否是前一个 viewController
swift - how can i check if a specific viewController is the previous viewController
我正在尝试检测我之前的 viewController 是否是特定的,如果是,当我按回时它将加载 tabBar 控制器。
我正在使用 revealViewController 更改视图控制器
这是我的代码:
在这里我保存了之前的视图控制器:
let newVC =
self.storyboard?.instantiateViewController(withIdentifier:
storyboardIdentifiers.newViewControllerID) as! newViewController
newVC.previousVC = self
self.revealViewController().setFront(newVC, animated: true)
这是我的后退动作,我需要检查前一个是否是第一个 viewController
func backAction() {
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController
if previousVC == first || previousVC == second {
previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController
self.revealViewController().setFront(previousVC, animated: true)
}
else {
self.revealViewController().setFront(previousVC, animated: true)
}
但是当我按回键时,它没有检测到它来自这些视图控制器之一。
当我打印 "self" 时,它给了我这个结果
<MyPackege.firstViewController: 0x7f9e80f2b5a0>
但它不加载 TabBarController
而不是使用 ==
运算符尝试使用 isKind(of: )
方法来检查 viewcontroller
的类型
func backAction() {
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController
if previousVC.isKind(of:firstViewController ) || previousVC.isKind(of:secondViewController ) {
previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController
self.revealViewController().setFront(previousVC, animated: true)
}
else {
self.revealViewController().setFront(previousVC, animated: true)
}
我正在尝试检测我之前的 viewController 是否是特定的,如果是,当我按回时它将加载 tabBar 控制器。 我正在使用 revealViewController 更改视图控制器 这是我的代码: 在这里我保存了之前的视图控制器:
let newVC =
self.storyboard?.instantiateViewController(withIdentifier:
storyboardIdentifiers.newViewControllerID) as! newViewController
newVC.previousVC = self
self.revealViewController().setFront(newVC, animated: true)
这是我的后退动作,我需要检查前一个是否是第一个 viewController
func backAction() {
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController
if previousVC == first || previousVC == second {
previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController
self.revealViewController().setFront(previousVC, animated: true)
}
else {
self.revealViewController().setFront(previousVC, animated: true)
}
但是当我按回键时,它没有检测到它来自这些视图控制器之一。
当我打印 "self" 时,它给了我这个结果
<MyPackege.firstViewController: 0x7f9e80f2b5a0>
但它不加载 TabBarController
而不是使用 ==
运算符尝试使用 isKind(of: )
方法来检查 viewcontroller
func backAction() {
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController
if previousVC.isKind(of:firstViewController ) || previousVC.isKind(of:secondViewController ) {
previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController
self.revealViewController().setFront(previousVC, animated: true)
}
else {
self.revealViewController().setFront(previousVC, animated: true)
}