【发布时间】:2014-04-02 16:17:59
【问题描述】:
我需要向父视图控制器发送数据;所以(在父级中)我创建了一个方法setLocWithName: loc: 来执行此操作。如何创建作为父控制器的对象?我尝试了parentViewController 和presentingViewController(如下所示),但我收到了警告:
使用“UIViewController *”类型的表达式初始化“TDViewController *__strong”的不兼容指针类型
// set object of parent view controller
TDViewController *tDViewController = [[self navigationController] presentingViewController];
// get data
NSArray *locs = [[PLStore sharedStore] allLocs];
PL *setselectedLoc = [locs objectAtIndex:[indexpath row]];
// send data to parent view controller
[tDViewController setLocWithName:[setselectedLoc pLocName] loc:[setselectedLoc loc1]];
// Pop this view controller off the stack
[self.navigationController popViewControllerAnimated:YES];
【问题讨论】:
-
“父母”是什么意思?您需要描述您拥有哪些控制器,以及它们之间的关系。
-
我只知道它是父子关系,但我有一个导航控制器(我不确定根视图的控制器是否在其之上或如何工作,但我离题了。 ) 然后根视图控制器是 TDViewcontroller 的父级(根视图控制器的“子级”)。 TDViewController 被推送到根视图控制器之上,并且这个 PLViewController 是 TDViewController 的“子”(或被推送到)
-
好吧,这不是正确的术语,导航堆栈上的控制器彼此之间没有父子关系(我猜最好认为是兄弟姐妹)。那么,您的结构是:UINavigationController --> rootVC --> TDViewController -->PLViewController?你贴的代码是哪个控制器,PLViewController?
-
你是对的:RootVC 将 TDVC 推在上面,然后将 PLCV 推在上面。数据和这段代码在PLVC中,DTVC有“setLocWithName loc”方法,需要数据。
标签: ios objective-c ios6 parentviewcontroller presentviewcontroller