在我的详细信息VC中,我正在实现这个UISplitViewController委托方法:
- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc
我很容易设置按钮的标题,但结果只是一个纯文本按钮,没有后退箭头。我希望获得类似Mail应用程序的东西,其中主弹出按钮也有后V形。
我该怎么做?
答案 0 :(得分:2)
创建自定义栏按钮项,使用V形图像,根据需要进行设置,并将栏按钮项的目标和操作设置为委托回调传递的项目。这样,您的小节按钮将执行与系统传递给您的操作相同的操作。您必须使用图像创建自己的栏按钮,因为AppStore批准的API无法创建后栏按钮。
在iOS7中,私有子类为UINavigationItemView
+ _UINavigationBarBackIndicatorView
。一个是按钮,另一个是雪佛龙。 _UINavigationBarBackIndicatorView
是UIImageView
的子类。所以它与你将要达到的目标非常接近。
答案 1 :(得分:1)
在iOS 8中,UISplitViewController有一个方法:
- (UIBarButtonItem *)displayModeButtonItem
如果您将返回的条形按钮项目设置为导航栏(UINavigationBar)的左侧按钮,它将为您显示V形符号。
另一方面,如果将返回的条形按钮项放入工具栏(UIToolbar),它将不会显示V形。
对于我想要显示雪佛龙后退按钮的地方,还需要显示我自己的几个条形按钮项目(如iPad上的Mail应用程序),我必须使用UINavigationBar和UIToolbar。这是一个丑陋的解决方案,但我必须将UINavigationBar部分覆盖在UIToolbar的顶部,以便获得一个后退按钮V形符号以及我自己的几个条形按钮项。
答案 2 :(得分:0)
要访问Apple使用的默认后退按钮图像,如Leo所说,箭头是_UINavigationBarBackIndicatorView类型的类。将此图像设置为后退按钮,您就可以开始使用了。
以下是黑客攻击,
<button type="button" class="btn btn-primary" data-dismiss="modal" data-ng-click="vm.Edit()" ng-disabled="Edit.$invalid" id="ticketEditbtn">Update Billing</button>
这是基于Ryan Henning的回答。
可以从详细视图控制器显示表示主视图的后退按钮。 UISplitview控制器没有为此提供本机方法,但它返回一个条形按钮对象,我们可以直接将其指定为导航控制器条按钮。很明显,细节视图控制器应位于导航控制器内部,以便工作。
UIImage *imgViewBack ;
for (UIView *view in self.navigationController.navigationBar.subviews) {
// The arrow is a class of type _UINavigationBarBackIndicatorView. This is not any of the private methods, so I think
// this is fine for the AppStore...
if ([NSStringFromClass([view class]) isEqualToString:@"_UINavigationBarBackIndicatorView"]) {
// Set the image from the Default BackBtn Imageview
UIImageView *imgView = (UIImageView *) view;
if(imgView){
imgViewBack = imgView.image ;
}
}
}