我可能过于复杂了,但有没有办法访问模态父项的属性?
因此,我调用“presentModalViewController”,然后我可以访问视图控制器上刚刚从模态调用它的一些属性。
谢谢,阿什利
我可能过于复杂了,但有没有办法访问模态父项的属性?
因此,我调用“presentModalViewController”,然后我可以访问视图控制器上刚刚从模态调用它的一些属性。
谢谢,阿什利
如果你使用的是 iOS 5,你可以调用 self.presentingViewController 来访问父视图控制器
这是苹果参考
您的答案几乎是正确的 - 您想要presentingViewController
而不是parentViewController
,但是如果您不小心,这可能会导致紧密耦合(两个类之间的依赖关系,这意味着它们只能相互协作)。
最好仍然定义一个协议,但您的委托属性不是必需的 - 它与该presentingViewController
属性具有相同的值。
好的,所以自从提出这个问题以来,我尝试了一些看起来好像可以工作但没有成功的技术。
这样的例子就是这样。
((pController *)self.parentViewController).testString;
然而,虽然它是一个常规的 UIViewController 呈现模式,但父级实际上是一个 UITabBarController,即使使用 selectedViewController 也不起作用。
我的解决方案是添加到我的模态的 .h 文件中
id delegate;
和
@property (nonatomic, assign) id delegate;
在实现文件中综合它之后,分配/初始化modalViewController,但在呈现它之前我设置了
modalViewController.delegate = self;
这样我就可以从我的模态中调用 self.delegate 。这还不够,因为它没有说明它是哪个视图控制器,所以我不能说
self.delegate.testString;
但是我之前学到的演员阵容让我得到了一个完全可行的解决方案
((pController *)self.delegate).testString;
我希望我不只是胡言乱语,我希望这可以帮助将来的人。