Ser*_*yov 7 iphone cocoa-touch objective-c uinavigationcontroller ios
我在这里有这个代码来检查是否存在ViewController.不幸的是它不起作用.问题是,它是在另一个VC弹出的时刻执行的Navigation Stack:
- (void) leftViewDidHide{
if ([((AppDelegate *)[UIApplication sharedApplication].delegate).frontViewController.navigationController.viewControllers objectAtIndex:1]) {
SGServerListViewController *sample = [[[((AppDelegate *)[UIApplication sharedApplication].delegate).frontViewController.navigationController.viewControllers objectAtIndex:1]childViewControllers] objectAtIndex:0];
[sample.serverTableView setUserInteractionEnabled:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃,异常断点将我指向带有if语句的行.关于这里可能出现什么问题的任何想法?我只是想检查它VC是否存在,如果是 - 执行代码.
小智 7
NSArray *viewControlles = [self.navigationController.viewControllers];
for (int i = 0 ; i <viewControlles.count; i++){
if ([YourVC isKindOfClass:[viewControlles objectAtIndex:i]]) {
//Execute your code
}
}
Run Code Online (Sandbox Code Playgroud)
NSArray *controllerArray = [self.navigationController.viewControllers];
//will get all the controllers added to UINavigationController.
for (id controller in controllerArray)
{
// iterate through the array and check for your controller
if ([controller isKindOfClass:[checkYourController class]])
{
//do your stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
只是为了一个想法类的containsObject:方法NSArray也可以工作.
- (void) leftViewDidHide{
if ([((AppDelegate *)[UIApplication sharedApplication].delegate).frontViewController.navigationController.viewControllers count] == 1) {
SGServerListViewController *sample = [[[((AppDelegate *)[UIApplication sharedApplication].delegate).frontViewController.navigationController.viewControllers objectAtIndex:1]childViewControllers] objectAtIndex:0];
[sample.serverTableView setUserInteractionEnabled:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12732 次 |
| 最近记录: |