小编gao*_*708的帖子

在 iOS8 中使用 splitViewController:willChangeToDisplayMode: 时如何显示 barButtonItem

我的应用程序的结构是这样的:

UISplitViewController:

the master:NavigationController1->UITableViewController

the detail:NavigationController2->UIWebViewController
Run Code Online (Sandbox Code Playgroud)

我想在 iPad 上的视图进入纵向模式时显示 barButtonItem,我知道如何通过 willHideViewController 在 iOS7 中实现它:

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

-(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem{
    if (barButtonItem == self.navigationItem.leftBarButtonItem) {
         self.navigationItem.leftBarButtonItem = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,此方法在 iOS 8 中已弃用,我尝试使用:

-(void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode{
    if (displayMode == UISplitViewControllerDisplayModePrimaryHidden) {
        self.navigationItem.leftBarButtonItem = svc.displayModeButtonItem;
    }else{
        self.navigationItem.leftBarButtonItem = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

此方法仅在显示模式更改时有效,而在应用首次以纵向启动时无效。那么如何在第一次以纵向加载应用程序时显示 barButtonItem。

objective-c uisplitviewcontroller ios ios8

4
推荐指数
1
解决办法
3338
查看次数

标签 统计

ios ×1

ios8 ×1

objective-c ×1

uisplitviewcontroller ×1