在UINavigationController上创建一个带有后退箭头形状的leftBarButtonItem
在UINavigationController上创建一个带有后退箭头形状的leftBarButtonItem
我有一个带有导航控制器的视图,我以模态方式显示它,并且我想添加一个形状类似于大多数splitViewController中使用的默认左箭头按钮的返回按钮。
我可以创建一个基本按钮,但我真的想要左箭头形状 - 这是我现在的代码:
/* 设置标题和导航栏项目 */
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"返回缩略图" style:UIBarButtonItemStylePlain target:self action:@selector(backToThumbnails:)] autorelease];
这里我只看到了3个风格选项?非常感谢任何建议!
问题出现的原因:开发者想要在UINavigationController的左侧添加一个带有箭头的返回按钮,但是在原生的UIKit框架中并没有直接提供这样的按钮样式。
解决方法:开发者可以使用第三方开源库Three20来实现这个功能。Three20是由Facebook应用程序的开发者创建的一个开源库,其中包含了一个名为TTButton的组件,它与UIButton非常相似,其中提供了一个带有箭头的返回按钮样式。开发者可以使用Three20库中的TTButton来创建一个带有箭头的左侧按钮,并将其设置为UINavigationController的leftBarButtonItem。
以下是使用Three20库中的TTButton来创建带有箭头的左侧按钮的示例代码:
#import... TTButton *backButton = [TTButton buttonWithStyle:TTButtonStyleBackBarTitle]; [backButton setTitle:@"Back" forState:UIControlStateNormal]; [backButton addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; self.navigationItem.leftBarButtonItem = backBarButtonItem;
上述代码首先导入了Three20库的头文件,然后创建了一个TTButton对象,并设置其样式为TTButtonStyleBackBarTitle,表示带有箭头的返回按钮样式。接下来设置按钮的标题和点击事件。最后,将TTButton对象包装在一个UIBarButtonItem中,并将其赋值给UINavigationController的leftBarButtonItem属性,从而将其显示在导航栏的左侧。
通过以上代码,开发者可以实现在UINavigationController中创建一个带有箭头的返回按钮。尽管使用Three20库可能会增加项目的依赖和复杂性,但它提供了很多其他功能,因此对于需要使用这些功能的项目来说是值得考虑的选择。