Ios 如何防止用户能够从滑出设置菜单连续调用同一视图控制器两次?
我有以下功能,用于识别嵌入在选项卡栏控制器中的导航控制器并推送纵断面图控制器。此函数可以工作,但我想做一些检查,以防止在纵断面图控制器是最近推送的视图控制器时,如果从滑出菜单调用此函数,则再次显示纵断面图控制器。下面是函数:Ios 如何防止用户能够从滑出设置菜单连续调用同一视图控制器两次?,ios,swift,uiviewcontroller,uinavigationcontroller,Ios,Swift,Uiviewcontroller,Uinavigationcontroller,我有以下功能,用于识别嵌入在选项卡栏控制器中的导航控制器并推送纵断面图控制器。此函数可以工作,但我想做一些检查,以防止在纵断面图控制器是最近推送的视图控制器时,如果从滑出菜单调用此函数,则再次显示纵断面图控制器。下面是函数: private func toProfile() { guard let appDelegate = UIApplication.shared.delegate as? AppDelegate, let tbc = appDelegate.windo
private func toProfile() {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate,
let tbc = appDelegate.window?.rootViewController as? TabBarController,
let nav = tbc.viewControllers?[tbc.selectedIndex] as? UINavigationController else { return }
let profileVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "profileVC")
nav.pushViewController(profileVC, animated: true)
delegate?.dismissSettingsVC()
}
我试过:
if nav.viewControllers.last == profileVC {
print("Do nothing")
} else {
nav.pushViewController(profileVC, animated: true)
}
但它从来没有说两者是平等的。如何生成if语句来检查最后一次推送的视图控制器是否为profileVC?您需要检查类型
if nav.viewControllers.last is ProfileVC {
print("Do nothing")
}
else {
nav.pushViewController(profileVC, animated: true)
}
目前,您比较了相同类型的两个实例,确定它们不相等当我尝试时,它给出了一个关于profileVC的错误,说“使用未声明的类型”profileVC“答对了!解决了。非常感谢。