如何从Tab栏控制器访问View Controller?

Zhe*_*hen 5 objective-c uinavigationcontroller ios

我有一个标签栏控制器,每个标签都包含一个导航控制器.

如何在选项卡中访问导航控制器中的特定视图控制器,以便我可以访问特定于视图控制器的属性?

我尝试了以下代码:

//Get the navigation controller of the 3rd tab
self.tabController.selectedViewController 
= [self.tabController.viewControllers objectAtIndex:2];

//Attempt to retrieve the viewcontroller I want from the tabcontroller
SomeViewController *svc = (SomeViewController *)self.tabController.selectedViewController;

//Attempting to access a BOOLEAN property in svc viewcontroller
svc.someProperty = YES;
Run Code Online (Sandbox Code Playgroud)

上面的代码失败了,因为似乎"self.tabController.selectedViewController"返回了一个导航控制器.如何扩展代码以便我可以访问"svc.someProperty"?

jtb*_*des 6

您可以使用-topViewController从导航控制器获取视图控制器(或者-visibleViewController如果您使用模态视图控制器).