1

在最近发布的 Twitter 应用程序更新中,文本从后退按钮中删除并替换为箭头。它看起来非常漂亮和简单,但我无法弄清楚他们是如何做到的。

新的 Twitter 后退按钮

我尝试过使用 iOS 5 UI 自定义,但没有什么效果很好。如果我设置 leftBarButtonItem,我可以让它工作,但这意味着我必须在每个视图控制器中执行它并编写我自己的操作来弹出视图控制器。有任何想法吗?提前致谢。

4

2 回答 2

2

它是一个自定义导航栏和按钮项。添加此代码:

 UINavigationBar * bar =[[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:bar];

//Back Button
UIButton *btnback = [UIButton buttonWithType:UIButtonTypeCustom];
[btnback setFrame:CGRectMake(0, 7, 54, 29)];
[btnback setBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
//UILabel * btnlabel =  [[UILabel alloc]initWithFrame:CGRectMake(15, 0, 40, 23)];
//btnlabel.backgroundColor = [UIColor clearColor];
//btnlabel.textColor = [UIColor whiteColor];
//btnlabel.font = [UIFont boldSystemFontOfSize:13];
//btnlabel.text = @"back";
//[btnback addSubview:btnlabel];
//[btnlabel release];
//btnlabel = nil;
[btnback addTarget:self action:@selector(BackAction:) forControlEvents:UIControlEventTouchUpInside];
[bar addSubview:btnback];
[bar release];
于 2013-02-14T01:21:33.213 回答
0

无需设置 backButton 或将其添加为 navigationController 的子视图。您只需要在 mainViewController 中设置返回按钮属性。像

UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil) style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];

buttonBack32 = [[UIImage imageNamed:@"back_button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 4)];

buttonBack24 = [[UIImage imageNamed:@"back_button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 4)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack32 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack24 forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone];
self.navigationItem.backButton = backButton;

或者你可以按照本教程http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

于 2013-02-14T08:50:52.373 回答