我正在研究地震xml iphone示例。 在该示例中,只有应用程序委托具有UITableViewController类型的rootViewController。
我想略微修改它,以便我有一个navigationController并使用它的rootViewController作为表视图。我的导航控制器的根视图控制器类名为“firstLevelViewController”
在示例代码中说
[rootViewController.tableView reloadData];
我想说[navController.firstLevelViewController.tableView reloadData]
但是我收到的错误是“请求成员firstLevelViewController中的某些东西不是结构或联合”
如何从主应用程序委托中引用navigationcontroller的rootViewController?
答案 0 :(得分:3)
firstLevelViewController
中没有UINavigationController
属性。如果要访问当前控制器,可以使用
UITableViewController* firstLevelViewController = navController.topViewController;
assert([firstLevelViewController isKindOfClass:[UITableViewController class]]);
[firstLevelViewController.tableView reloadData];
如果firstLevelViewController
表示底部的视图控制器,则可以使用
UITableViewController* firstLevelViewController = [navController.viewControllers objectAtIndex:0];
....
答案 1 :(得分:0)
像这样访问rootViewController:
<强> 目标C 强>
YourViewController *rootController =(YourViewController*)[[(YourAppDelegate*)
[[UIApplication sharedApplication]delegate] window] rootViewController];
<强>夫特强>
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let viewController = appDelegate.window!.rootViewController as YourViewController