在从tableview切换到标准视图(选择单元格时)时,我无法弄清楚如何禁用导航栏中出现的后退按钮动画。没有明显的代码行可以启动动画。这是gif-form:
Facebook应用程序中的导航按钮没有动画,因此可以。
可能有必要提一下,我正在使用ViewDeck库创建类似Facebook的tableView菜单,即向右滑动以显示表格。
编辑:解决方案基于Hesham Abd-Elmegid的答案,但修改为使用自定义图像......
UIImage *settingsImage = [UIImage imageNamed:@"back_button@2x.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(280.0, 10.0, 29.0, 29.0);
[backButton setBackgroundImage:settingsImage forState:UIControlStateNormal];
backButton.frame = CGRectMake(0, 0, 50, 30);
[backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = customBarItem;
答案 0 :(得分:2)
如果您将自定义UIBarButtonItem
设置为左侧导航项(而非标准后退按钮项),它将会淡化而不是滑入,就像在Facebook的应用中一样。只需创建一个简单的方法,通过调用包含详细视图控制器的导航控制器上的popViewControllerAnimated:
来替换后退按钮功能。
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack)] autorelease];
}
- (void)goBack
{
[self.navigationController popViewControllerAnimated:YES];
}
注意:UIBarButtonItem
也可以使用initWithImage:style:target:action:
方法设置图像。
答案 1 :(得分:0)
您可以使用自定义UIButton替换后退按钮。这样就无法在过渡时制作动画。
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Back" forState:UIControlStateNormal];
backButton.frame = CGRectMake(0, 0, 50, 30);
[backButton addTarget:self action:@selector(onBack) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = customBarItem;
[customBarItem release];
您必须为后退按钮的箭头形状找到PNG。