我需要在我的应用程序中添加一个左侧栏按钮项,看起来像系统后退按钮,但不是系统后退按钮,因为它将出现在视图控制器上,这是我的navController堆栈的唯一vc并执行我自己的码。简单地写“回”对我来说并不是很好,因为我需要显示“<”箭头也是。有没有办法以编程方式创建这样的箭头,而不用该箭头制作图像?
答案 0 :(得分:11)
您可以使用任何Unicode字符(代码中的任何位置)。
你可以在这里找到你想要的东西:
Xcode>编辑>特殊字符......
搜索arrow
或back
或浏览类别
然后复制粘贴所需的字符(在XIB对象的标题中或setTitle
或setText
方法中,就像任何其他字符一样)
答案 1 :(得分:4)
试试这个:
// After you create and place your backButton:
UILabel* arrowLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 20, 20)];
arrowLabel.text = @"<";
arrowLabel.textColor = [backButton titleColorForState:UIControlStateNormal];
arrowLabel.transform = CGAffineTransformMakeScale(1,2);
[backButton addSubview:arrowLabel];
如果addSubview给您带来麻烦,请尝试
[backButton insertSubview:arrowLabel atIndex:0];
答案 2 :(得分:2)
考虑使用虚拟UIViewController
作为UINavigationController
堆栈的根视图控制器:
[[UINavigationController alloc] initWithRootViewController:[UIViewController new]];
[navController pushViewController:viewController animated:NO];
然后,您可以使用我的BackButtonHandler扩展程序处理后退按钮操作(如this thread中所述):
-(BOOL) navigationShouldPopOnBackButton {
[self dismissModalViewControllerAnimated:YES];
return NO;
}
答案 3 :(得分:0)
查看UIBarButtonItem文档中的容器下的UIBarButtonSystemItem
枚举:
这些是Apple提供的所有按钮样式:
typedef enum {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo, // iOS 3.0 and later
UIBarButtonSystemItemRedo, // iOS 3.0 and later
UIBarButtonSystemItemPageCurl, // iOS 4.0 and later
} UIBarButtonSystemItem;
也许回放或撤消对你来说足够接近。