如何打开堆栈中已有的屏幕,而不是在IOS中创建新屏幕
我面临一个问题,如果屏幕(ViewController)已经在堆栈中,那么它可以再次打开。设V1为视图控制器。我以V1->v2的形式从V1转到v2,而不是v2->V3。现在我想从V3打开V1。我正在使用NavigationViewController打开屏幕-如何打开堆栈中已有的屏幕,而不是在IOS中创建新屏幕,ios,swift,xcode,applet,Ios,Swift,Xcode,Applet,我面临一个问题,如果屏幕(ViewController)已经在堆栈中,那么它可以再次打开。设V1为视图控制器。我以V1->v2的形式从V1转到v2,而不是v2->V3。现在我想从V3打开V1。我正在使用NavigationViewController打开屏幕- let help = V1(nibName : "V1" , bundle: nil) navViewcontroller?.navigationController?.pushViewController(help, animated
let help = V1(nibName : "V1" , bundle: nil)
navViewcontroller?.navigationController?.pushViewController(help, animated: true)
这将创建一个新的V1屏幕,我无法使用V1堆栈
请回答怎么可能,抱歉出错。像这样做
if let navController = self.navigationController, let VC1 = navController.viewControllers.first {
_ = self.navigationController?.popToViewController(VC1 as! YourVC, animated: true)
}
或
//注意:如果VC1是基本导航控制器,这些将起作用
if let navController = self.navigationController, let VC1 = navController.viewControllers.first {
_ = self.navigationController?.popToViewController(VC1 as! YourVC, animated: true)
}
或
//注意:如果VC1是基本导航控制器,这些将起作用如果您确切知道堆栈中视图控制器的索引,则可以简单地使用:
let viewController = navigationController?.viewControllers[index]
navigationController?.popToViewController(viewController, animated: true)
否则,您可以遍历视图控制器并找到它:
for viewController in (navigationController?.viewControllers)! {
if viewController is LoginMobileVC { // LoginMobileVC is your view controller class
navigationController?.popToViewController(viewController, animated: true)
break
}
}
如果您确切知道堆栈中视图控制器的索引,则可以简单地使用:
let viewController = navigationController?.viewControllers[index]
navigationController?.popToViewController(viewController, animated: true)
否则,您可以遍历视图控制器并找到它:
for viewController in (navigationController?.viewControllers)! {
if viewController is LoginMobileVC { // LoginMobileVC is your view controller class
navigationController?.popToViewController(viewController, animated: true)
break
}
}
如何使用navigationController获取视图控制器的计数。。这样我就可以使用for循环来查找现有的one@SanjayMajoka使用
let count=navigationController?.viewControllers.count
如何使用navigationController获取视图控制器的计数。。这样我就可以使用for循环来查找现有的one@SanjayMajoka使用let count=navigationController?.viewControllers.count
查看此链接的可能重复项。可能的副本请参见此链接。