【发布时间】:2012-09-29 11:02:36
【问题描述】:
谁能告诉我如何表达if () 语句来发现segue 的目标视图控制器是否会出现在细节拆分或主拆分中?
我想将if() 语句放在我的prepareForSegue:sender: 方法中。
编辑
与此问题相关的所有详细视图(目前)都符合协议,我目前正在使用以下方法对目标控制器进行自省:
if ([segue.destinationViewController conformsToProtocol:@protocol(myProtocol)])...
如果我愿意,我可以看到这是行不通的:
- 为了能够不时在 splitView 的 Master 或 Detail 中显示相同的类,同时...
- 我只希望 if() 语句在要在细节拆分中呈现视图时为真。
segue.destinationViewController.navigationController == ... 之类的东西似乎也没有任何用处。
我希望既然我们在设置 segue 时需要设置“Master Split”或“Detail Split”……有一种方法可以不那么迂回地访问这些信息。
第二次编辑:
我使用内省进行此设置的方式确实“有效”。它似乎不是很“面向对象”。我认为我根本不应该查询视图控制器来获取这些信息,我不明白为什么 VC 应该知道它将显示在 splitView 的哪一侧。当然,应该保留此信息的对象是 Segue,正如我所说,当我们选择“细节”或“主”拆分时,它似乎正在情节提要中“设置”。
也许它不是任何东西的属性,但我不知道如何得到它。
我想我可以在它的 viewWillAppear 中查询 destinationViewController 以发现它出现在屏幕上后它所在的 NavigationController 但是,再次,它似乎有点“hacky”。
【问题讨论】:
标签: ios xcode ipad uistoryboard