切换视图时如何防止后退按钮动画?

时间:2012-12-18 07:14:09

标签: ios

在从tableview切换到标准视图(选择单元格时)时,我无法弄清楚如何禁用导航栏中出现的后退按钮动画。没有明显的代码行可以启动动画。这是gif-form:

demo

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;

2 个答案:

答案 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。