Leo*_*Leo 2 iphone objective-c uiviewcontroller ios
我正从AppDelegate班上查看我ParentEndViewController目前是否是可见课程.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];
ParentEndViewController *parent = [storyboard instantiateViewControllerWithIdentifier:@"ParentEndViewController"];
if (parent.isViewLoaded && parent.view.window){
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:displayName
message:body
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
NSLog(@"current view is parent!");
}
else{
NSLog(@"current view is not parent!");
}
Run Code Online (Sandbox Code Playgroud)
它正在打印current view is not parent!".但我确信我的应用程序上运行的当前视图是ParentEndViewController,它应该打印current view is parent!.
问题出在哪儿?
问题是,ParentEndViewController当您调用[storyboard instantiateViewControllerWithIdentifier:@"ParentEndViewController"];此实例时,实例化一个新对象与根视图控制器的实例不同.如果您在app delegate中检查应用程序的根视图控制器,您应该尝试
if([self.window.rootViewController isKindOfClass:[ParentEndViewController class]]) {
NSLog(@"Luke I'm your father");
}
else {
NSLog(@"Sorry bro, somebody else is the parent");
}
Run Code Online (Sandbox Code Playgroud)
如果您正在检查导航控制器的最后一个视图控制器,您应该尝试以下方法:
UIViewController *lastViewController = [[self.navigationController viewControllers] lastObject];
if([lastViewController isKindOfClass:[ParentEndViewController class]) {
NSLog(@"Luke I'm your father");
}
else {
NSLog(@"Sorry bro, somebody else is the parent");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10107 次 |
| 最近记录: |