Arc*_*ian 2 iphone objective-c
我在UISplitViewController中有一个自定义的customUIViewController,想要从另一个类中的detailView(这是UISplitViewController中的另一个UIViewController)访问customUiViewController的实例; 我怎样才能做到这一点?
CODE SNIP(不要担心语法;它会缩短)
myAppDelegate.m
customViewController *masterView = [[customViewController alloc] init;
UINavigationController *NVC = [[UINavigationController alloc] initWithRootViewController:masterView];
MYViewController *detailView = [[MyViewController alloc] init;
UISplitViewController *mySplit = [...];
mySplit.viewControllers = NSArray[...masterview,detailView,nil];
[window addSubView:mySplit view];
Run Code Online (Sandbox Code Playgroud)
MyViewController.m
-(void) someMethod {
customViewController *myInstance = (customViewController)[self.splitViewController objectAtIndex:0]; ??
// I think this just gets the outter UINavigationController
[myInstance doSomething];
}
Run Code Online (Sandbox Code Playgroud)
customViewController.m
-(void) doSomething {
}
Run Code Online (Sandbox Code Playgroud)
我希望能够访问customViewController来调用doSomething方法.customViewController和myViewController都在同一个UISplitViewController中
小智 5
UIViewControllers有一个splitViewController属性,所以尝试使用它来获取引用:
customViewController *myInstance =
(customViewController *)[self.splitViewController.viewControllers
objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
索引0是拆分视图控制器中的左侧视图控制器.
编辑:
如果左侧视图控制器是UINavigationController,那么要获取其根视图控制器,请执行以下操作:
UINavigationController *nc =
(UINavigationController *)[self.splitViewController.viewControllers
objectAtIndex:0];
customViewController *myInstance =
(customViewController *)[nc.viewControllers objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)