有人知道改变文本(和外观)的方法吗?从UISplitViewController委托返回的按钮:
func displayModeButtonItem() -> UIBarButtonItem?发布于 2014-10-05 05:12:21
我自己解决这个问题的方法是:
UIBarButtonItem(image: UIImage(named:"home"),
landscapeImagePhone: UIImage(named:"home"),
style: UIBarButtonItemStyle.Plain,
target: splitViewController.displayModeButtonItem().target,
action: splitViewController.displayModeButtonItem().action)我在AppDelegate中使用它,而不是在splitViewController.displayModeButtonItem()中,它对我来说很好。
发布于 2014-11-07 10:25:43
在我的解决方案中,我结合了josh和Voluntas88的解决方案。
首先需要使用UISplitViewControllerDelegate方法func targetDisplayModeForActionInSplitViewController(_ svc: UISplitViewController) -> UISplitViewControllerDisplayMode,然后添加一个定制的UIBarButtonItem。以下是我的解决方案:
func targetDisplayModeForActionInSplitViewController(svc: UISplitViewController) -> UISplitViewControllerDisplayMode {
if svc.displayMode == UISplitViewControllerDisplayMode.PrimaryHidden || svc.displayMode == UISplitViewControllerDisplayMode.PrimaryOverlay {
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named:"menu.png"),
landscapeImagePhone: UIImage(named:"menu.png"),
style: UIBarButtonItemStyle.Plain,
target: self.splitViewController!.displayModeButtonItem().target,
action: self.splitViewController!.displayModeButtonItem().action)
}else {
// disable button on landscape
if UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeLeft || UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeRight {
self.navigationItem.leftBarButtonItem?.enabled = false
}
}
return UISplitViewControllerDisplayMode.Automatic
}发布于 2015-02-25 01:18:06
在targetDisplay中这样做是可行的,但在旋转结束时可以看到按钮的移除/添加,最好在splitViewController:willChangeToDisplayMode:displayMode中这样做,但请记住,这也应该在viewDidLoad上处理,因为该委托方法在启动时不会被调用。
- (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode
{
if (displayMode == UISplitViewControllerDisplayModePrimaryHidden || displayMode == UISplitViewControllerDisplayModePrimaryOverlay) {
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Lista" style:UIBarButtonItemStylePlain target:self.splitViewController.displayModeButtonItem.target action:self.splitViewController.displayModeButtonItem.action];
} else {
self.navigationItem.leftBarButtonItem = nil;
}
}https://stackoverflow.com/questions/25852593
复制相似问题