【问题标题】:Changing the detail Navigation Items in UISplitViewController iOS 8更改 UISplitViewController iOS 8 中的详细导航项
【发布时间】:2015-02-21 20:18:54
【问题描述】:

我在 UISplitViewController 中有 2 个 UINavigationController。当用户在 iPad 上进入纵向模式时,我想更改详细控制器栏按钮项目。我以前可以通过做来改变它

- (void)splitViewController:(UISplitViewController *)svc willHideViewController:    (UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
barButtonItem.title = @"Title";

//put on left side
self.navigationItem.leftBarButtonItem = barButtonItem;

}

但这种方法在 iOS 8 中已被弃用。

我尝试过使用

- (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode
 {
       if (displayMode == UISplitViewControllerDisplayModePrimaryHidden) {
          self.navigationItem.leftBarButtonItem.title =   @"title";//self being the detail controller    
       }
 }

但这没有用

我还查看了其他问题,但没有找到任何解释性答案。 有人能指出我正确的方向吗?

【问题讨论】:

    标签: ios objective-c uinavigationcontroller delegates uisplitviewcontroller


    【解决方案1】:

    我想通了。

    有一个名为 displayMode 的新属性,它是一个新的 UIBarButtonItem

    这是如何实现的

    - (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:    (UISplitViewControllerDisplayMode)displayMode
    {
    UINavigationItem *navItem = self.navigationItem;
    navItem.leftBarButtonItem = [svc displayModeButtonItem];
    
    }
    - (UISplitViewControllerDisplayMode)targetDisplayModeForActionInSplitViewController:(UISplitViewController *)svc
    {
    if (svc.displayMode == UISplitViewControllerDisplayModePrimaryHidden)
    return UISplitViewControllerDisplayModeAllVisible;
    
    return UISplitViewControllerDisplayModePrimaryHidden;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2017-07-11
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多