- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"switching views");
if([viewController isKindOfClass: [UINavigationController class]] &&
[[[viewController viewControllers] objectAtIndex: 0] isKindOfClass: [SavedViewController class]]) {
NSLog(@"its a SavedViewController");
[[[[viewController viewControllers] objectAtIndex: 0] tableView] reloadData];
}
}
答案 0 :(得分:2)
为什么不把重载数据调用放在SavedViewController类的viewDidAppear方法中?
答案 1 :(得分:1)
Dot符号会清理一些支架林,但这就是我能想到的。
答案 2 :(得分:1)
可可的重大折衷是可读性与简洁性。
你离我所做的事情并不遥远:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"switching views");
if([viewController isKindOfClass: [UINavigationController class]]) {
id first_view_controller = [viewController.viewControllers objectAtIndex:0];
if ([first_view_controller isKindOfClass: [SavedViewController class]) {
NSLog(@"its a SavedViewController");
[first_view_controller.tableView reloadData];
}
}
}
编辑:根据C. McCall在几个地方使用点符号
再次编辑:看起来像ObjC做短路。