1

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

演示

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;
4

2 回答 2

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:方法设置。

于 2012-12-18T08:03:10.700 回答
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。

于 2012-12-18T08:03:53.837 回答