【发布时间】:2018-06-29 13:46:20
【问题描述】:
我在使用objective-c 的iOS 项目中使用导航栏时遇到了一点问题。
我有一些由navigationviewcontroller 管理的视图控制器,其层次结构类似于 1-2-3。
对于Viewcontrollers 2 和3,我在viewWillAppear 函数中定义了自定义后退按钮,因为我需要在触摸它们时为其分配更复杂的逻辑。这就是我在前一个视图控制器中没有设置后退按钮的原因。
一切都像这样正常工作,我的唯一问题是,在从一个视图转换到另一个视图时,后退按钮的箭头被导航栏背景颜色颜色的小视图覆盖,直到高达 50%,然后在过渡完成后消失。
我用这个函数在导航栏中创建我的后退按钮,在viewWillAppear中调用:
- (void)setupCustomBackButton:(NSString *)title
action:(SEL)action
buttonFrame:(CGRect)buttonFrame {
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
backButton.frame = buttonFrame;
[backButton setImage:[UIImage imageNamed:@"backArrowOwn"] forState:UIControlStateNormal];
backButton.imageEdgeInsets = UIEdgeInsetsMake(0.0f, -8.0f, 0.0f, 0.0f);
[backButton setTitle:title forState:UIControlStateNormal];
[backButton.titleLabel setFont:[UIFont systemFontOfSize:17.0]];
backButton.titleEdgeInsets = UIEdgeInsetsMake(0.0f, -3.0f, 0.0f, 0.0f);
[backButton setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[backButton addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = barButton;
}
我希望也许有人对我有一个好的提示!谢谢!
【问题讨论】:
标签: ios objective-c xcode uinavigationcontroller uibutton