为每个屏幕自定义NavigationController的后退button
我一直在尝试UINavigationController类的子类来修改背景图像,导航栏大小,后退button,字体等等。 几个小时后,大量的阅读我明白,我不应该inheritanceUINavigationController类…
我想有具体的devise和将devise转移到使用我的自定义NavigationController的所有屏幕…
到目前为止,我还没有为此提供任何优雅的解决scheme,大多数解决scheme都是基于configuration仅在下一个屏幕中显示的内容(下一个视图)。
我怎样才能做到这一点? 也许使用类别? 提前致谢。
我正在显示UINavigationcontroller
自定义leftbarbutton的代码。 您可以在每个视图控制器中添加此代码,并为这两个button(右和左)
leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; [leftButton setImage:[UIImage imageNamed:@"Yourcutomeimage.png"] forState:UIControlStateNormal]; leftButton.frame = CGRectMake(0, 0, 30, 30); [leftButton addTarget:self action:@selector(youraction:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:leftButton]autorelease];
//要么
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:leftButton]autorelease];
希望对你有帮助..
是@Nit是正确的,这是自定义UINavigationController
,但是如果你不想为每个UIViewController
都做,你可以创build一个UIViewControllerBase
类,它是UIViewController
一个子类,在viewDidLoad
方法中,设置所有button的方式@Nit描述,然后使每个UIViewController
你必须是你的UIViewControllerBase
类的子类。
如果你想添加一个自定义的后退button到uinavigationcontroller,你应该使用navigationItem.backBarButtonItem并在初始化uinavigationcontroller的类中实现它。 样本: –
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btnImage.png" style:UIBarButtonItemStyleBordered target:youtarget action:@sel(your action)]; self.navigationItem.backBarButtonItem = backButton; [backButton release];
我在这个答案中概述了我的解决scheme: https : //stackoverflow.com/a/16831482/171933
基本上,你在UIViewController上创build一个类别,并在视图控制器的每个viewWillAppear
方法中调用一个单一的方法。