Jea*_*ott 5 iphone objective-c ios swift
我遇到了一段代码,可以弹出到导航堆栈中的特定viewcontroller,如下所示
for (UIViewController* viewController in self.navigationController.viewControllers) {
if ([viewController isKindOfClass:[MyGroupViewController class]] ) {
MyGroupViewController *groupViewController = (MyGroupViewController*)viewController;
[self.navigationController popToViewController:groupViewController animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
目标是弹出到MyGroupViewController.但我不理解这行代码.
MyGroupViewController *groupViewController = (MyGroupViewController*)viewController;
Run Code Online (Sandbox Code Playgroud)
什么事发生在这里.我不认为这里创建了一个新的MyGroupViewController实例.
Ind*_*ore 22
//This for loop iterates through all the view controllers in navigation stack.
for (UIViewController* viewController in self.navigationController.viewControllers) {
//This if condition checks whether the viewController's class is MyGroupViewController
// if true that means its the MyGroupViewController (which has been pushed at some point)
if ([viewController isKindOfClass:[MyGroupViewController class]] ) {
// Here viewController is a reference of UIViewController base class of MyGroupViewController
// but viewController holds MyGroupViewController object so we can type cast it here
MyGroupViewController *groupViewController = (MyGroupViewController*)viewController;
[self.navigationController popToViewController:groupViewController animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以这样做
if ([viewController isKindOfClass:[MyGroupViewController class]] ) {
[self.navigationController popToViewController:viewController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
SWIFT代码
//Itrate through all the view controllers in navigation stack
for vc in self.navigationController!.viewControllers {
// Check if the view controller is of MyGroupViewController type
if let myGropupVC = vc as? MyGroupViewController {
self.navigationController?.popToViewController(myGropupVC, animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12581 次 |
最近记录: |