从主视图控制器推送详细视图控制器

Posted

技术标签:

【中文标题】从主视图控制器推送详细视图控制器【英文标题】:Pushing detail view controller from master view controller drill through 【发布时间】:2012-04-02 11:06:32 【问题描述】:

我已经使用 Apple 的示例多个详细视图(使用 SubstitutableDetailViewController)来构建具有多个视图控制器的 iPad 应用程序。到目前为止,一切都按计划进行,直到我遇到了麻烦。

我用作模板的 Apple 指南可以在这里找到:http://developer.apple.com/library/ios/#samplecode/MultipleDetailViews/Introduction/Intro.html

我遇到的问题是我的 masterviewcontroller 有一个向下钻取。当我尝试从下钻菜单将新视图推送到详细视图控制器时,它似乎可以工作,但我的旋转按钮行为不正确。我应该在我的主视图的向下钻取视图控制器中复制所有 UISplitViewController 委托方法吗?

提前致谢,

布伦

【问题讨论】:

我不清楚您在讨论哪些按钮...我只看到显示主弹出框的按钮。此外,有关“行为不正确”的一些详细信息可能会有所帮助。 对不起,我不够清楚。问题是,在原始主视图控制器中将视图推送到详细视图控制器时工作正常 - 我在纵向时得到“菜单”按钮。但是,一旦我在主视图中深入了解新的 tableviewcontrollers,当我按下新的详细视图控制器时,详细导航栏上的“菜单”按钮不会出现(纵向时)。旋转设备可以解决此问题。看来我的 popovercontroller 在下钻中似乎总是 nil 【参考方案1】:

在应用程序启动时(纵向),您的 SplitViewController 将调用此委托方法

- (void)splitViewController:(UISplitViewController*)svc 
     willHideViewController:(UIViewController *)aViewController 
     withBarButtonItem:(UIBarButtonItem*)barButtonItem 
     forPopoverController:(UIPopoverController*) pc 

在示例中,您在 masterViewController 中链接该方法调用:

    [detailViewController showRootPopoverButtonItem:rootPopoverButtonItem];

将按钮添加到细节控制器。当你推一个新的细节控制器添加按钮时,你需要调用上面的行,否则它将为零。

【讨论】:

以上是关于从主视图控制器推送详细视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

使用导航控制器从 mapView 推送详细视图

didReceiveRemoteNotification 从 tabbarcontroller 推送视图控制器

在 iOS 拆分视图控制器上推送新的视图控制器

将视图控制器从根推送到详细视图控制器 (SplitView)

iOS - 收到推送通知后显示视图

iPhone SDK:推送的视图控制器不出现