Rex*_*Lam 5 uinavigationcontroller uibarbuttonitem ios ios7
问题:我想在像Whatsapp(<Chats(2)/ <Chats(3))这样的弹出视图控制器中自定义导航后退按钮标题。
但是,如果在弹出的视图控制器中分配新的backBarButtonItem,则会禁用向后滑动手势
self.navigationController.interactivePopGestureRecognizer.delegate = self;
Run Code Online (Sandbox Code Playgroud)
要保持手势正常工作,它将给您带来更多麻烦(麻烦太多了)。
Rex*_*Lam -1
回答:
经过一天的时间解决这个问题,我有一个非常简单和容易的解决方案,适用于 iOS 6 和 iOS 7 :
1)。AppDelegate 中的自定义样式(颜色、字体)(假设您将为所有控制器使用相同的样式)
2)。像这样创建一个自定义 UINavigationController :
CustomBackNavigationController.h
@interface CustomBackNavigationController : UINavigationController <UINavigationControllerDelegate>
@property (nonatomic, strong) UIBarButtonItem *backButton;
@end
Run Code Online (Sandbox Code Playgroud)
CustomBackNavigationController.m
@implementation CustomBackNavigationController
@synthesize backButton;
- (void)viewDidLoad
{
[super viewDidLoad];
self.delegate = self;
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
backButton = [[UIBarButtonItem alloc] initWithTitle:@"Chats" style:UIBarButtonItemStyleBordered target:nil action:nil];
viewController.navigationItem.backBarButtonItem = backButton;
}
@end
Run Code Online (Sandbox Code Playgroud)
在弹出的视图控制器中,只需更改 backButton 标题,如下所示
- (void)someMethod
{
CustomBackNavigationController *customBackNavigationController = (CustomBackNavigationController *) self.navigationController;
[customBackNavigationController.backButton setTitle:@"Chats (1)"];
}
Run Code Online (Sandbox Code Playgroud)
就是这样 !
| 归档时间: |
|
| 查看次数: |
3094 次 |
| 最近记录: |