【问题标题】:How to make the detailview and masterView communicate in the splitViewController?splitViewController中如何让detailview和masterView通信?
【发布时间】:2012-08-28 17:34:09
【问题描述】:

我有一个UISplitView,一个masterView 和一个detailViewmasterViewUITableViewController(在 UINavigationControler 内),detailViewUIViewController(也在 UINavaigationController 内)。

UISplitViewmasterView 和空的 detailView 一起看起来很好。在masterView,我有这个方法:

 - (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
       if (![self splitViewController])
       DetailViewController*myDetailView = [[DetailViewController alloc] init];
       Item *selectedItem = [items objectAtIndex:[indexPath row]];
       [myDetailView setItem:selectedItem];
       [[self navigationController] pushViewController:myDetailView animated:YES];
    }

这适用于 iPhone。 对于 iPad,detailView 出现在 masterViewController 中,尽管是正确的,但详细视图仍然为空。

如何让myDetailview 出现在detailView 中(splitView 的右侧)?

【问题讨论】:

    标签: iphone cocoa-touch ipad uisplitviewcontroller


    【解决方案1】:

    我推荐你使用 Matt gemmell 的MGSplitViewController

    他已经自定义了拆分视图控制器中的所有内容,您可以使用它在右侧获取主控,并且您说UISplitViewController 在 iPhone 中工作正常,这很奇怪

    要明确UISplitViewController 是特定于 iPad 而不是 iPhone

    所以,请了解 iPad 专用控制器,例如 UIPopOverControllerUISplitViewController

    在文档中,您可以在第一行中自行阅读

    Split view controllers are for use exclusively on iPad devices.
    
     Attempting to create one on other devices results in an exception. 
    

    【讨论】:

    • 非常感谢。我将研究 MGSplitViewController。当我说它适用于 iPhone 时,我想我并不清楚。我提到了适用于 iPhone 的代码 (!if[self splitViewController])。这意味着 iPhone 会忽略 UISplitviewcontroller 并在 masterview 之上呈现 detailview。
    猜你喜欢
    • 1970-01-01
    • 2013-10-27
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多