在主视图控制器中切换视图控制器时,iPad拆分视图未显示BarButtonItem

时间:2014-10-07 10:48:26

标签: ios ipad uisplitviewcontroller uibarbuttonitem

我对iPad开发还很陌生,所以请原谅我看似有点显而易见的问题。

我有一个现有的iPhone应用程序,我正在转换为iPad版的通用应用程序。

用户界面很简单。

Split View Controller其中Master代表静态UITableView(人物,时间轴,事件,日期)供用户选择。 Detail当然会显示UITableView Master中选择的任何一个单元格。 DetailMaster都已在Storyboard中创建,并且都是NavigationControllers。

我正在尝试执行以下常见方面:横向模式同时显示MasterDetail视图,而纵向仅显示Detail视图,但显示{{1}在请求时弹出UIBarButtonItem

问题

当我从Master转到Landscape时,Portrait可见,我可以按此按钮以纵向模式显示UIBarButtonItem视图。

在纵向模式下,如果我拿出按钮并从Master视图中选择其他单元格,则当我通过点击Master视图中的任意位置关闭Master时,它现在不显示Detail

我正在关注http://www.dharmaworks.net/Consulting/switching-detail-views-in-uisplitviewcontroller-with-ios7/作为尝试让这个工作的方法。

代码

MasterTableView:

UIBarButton

SplitViewPresenter协议

#pragma mark - Split View Delegate
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
    UINavigationController *navController = [[[self splitViewController ] viewControllers ] lastObject ];
    id vc = [[navController viewControllers] firstObject];

    [vc setSplitViewButton:barButtonItem forPopoverController:popoverController];
}

- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    UINavigationController *navController = [[[self splitViewController ] viewControllers ] lastObject ];
    id vc = [[navController viewControllers] firstObject];

    [vc setSplitViewButton:nil forPopoverController:nil];
}

详细信息视图

@property (nonatomic, strong) UIBarButtonItem *splitViewBarButtonItem;
-(void)setSplitViewButton:(UIBarButtonItem *)splitViewButton forPopoverController:(UIPopoverController *)popoverController;

详细视图的.h文件声明为使用SplitViewPresenter。

更新

我理解为什么会这样。当我从横向模式旋转到纵向模式时,只会调用setter。我的问题是,如何在没有轮换的情况下使其工作?另外,在我上面的链接中,我没有实现任何didSelectRow代码。我应该这样做吗?

对此的任何指导都将非常感激。

0 个答案:

没有答案