我可能过于复杂了,但有没有办法访问模态父母的属性?
所以,我打电话给" presentModalViewController"然后我可以访问刚从模态调用它的视图控制器上的一些属性。
谢谢, 阿什利
答案 0 :(得分:4)
如果您使用的是iOS 5,则可以调用self.presentingViewController来访问父视图控制器
答案 1 :(得分:2)
你的答案几乎是正确的 - 你想要presentingViewController
而不是parentViewController
,但是这可能会导致紧密耦合(两个类之间的依赖关系,这意味着它们只能相互协作)如果你'不小心。
最好定义一个协议,但是你的委托属性不是必需的 - 它将具有与presentingViewController
属性相同的值。
答案 2 :(得分:1)
好的,所以自从提出这个问题后,我尝试了一些技术,看起来好像它们可以工作但却没有。
这样的例子是这样的。
((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;
我希望我不仅仅是因为这样做而喋喋不休,我希望这可以帮助将来的某个人。