【发布时间】:2014-04-14 16:43:12
【问题描述】:
我正在构建一个通用应用程序,它应该提供一个视图控制器来添加东西。在 iPad 上,这以 popover 的形式呈现,而在 iPhone 上以模态 viewController 呈现。我正在使用呈现ViewController 作为delegate。
现在,如果我想分配properController,我必须:
if([[segue identifier] isEqualToString:@"popoverAddSegue"])
self.myPopOver = [(UIStoryboardPopoverSegue * )segue popoverController];
if([[segue identifier] isEqualToString:@"modalAddSegue"])
self.myModalView = [segue destinationViewController];
因此使用两个属性并且只分配一个。 然后,在我的委托函数中,我再次需要区分:
if(self.myPopOver)
[self.myPopOver dismissPopoverAnimated:YES];
if(self.myModalView)
[self.myModalView dismissViewControllerAnimated:YES completion:nil];
问题显然是UIPopoverController 不继承自UIViewController... 有什么优雅的方法吗?工厂什么的?我讨厌在 viewController 中有自定义代码,它应该不知道它如何呈现它的 viewControllers...
【问题讨论】:
标签: ios iphone objective-c ipad uiviewcontroller