对于这种情况,您需要考虑应用程序类的设计。我给你一个非常简单的例子,它会让你想到一个称为“继承”的 OOP 概念。
您可以调整代码以使用您的标头(即 XIB)
我将创建一个基类btBaseViewController.h 和btBaseViewController.m。这个类将具有我希望我的所有视图控制器都拥有的最常见的功能
- 带有按钮的自定义标题视图。
- 内容视图。
- 一种渲染UI的方法。
- 另一种启用/禁用后退按钮的方法。
在文件btBaseViewController.h 中将其设为这样。
#import <UIKit/UIKit.h>
@interface btBaseViewController : UIViewController
@property(nonatomic, retain) btHeader *headerView;
-(void)showHeaderViewWithBackButton:(BOOL)backButton;
@end
在btBaseViewController.m中实现方法为
-(void)showHeaderViewWithBackButton:(BOOL)backButton {
// Now implement this method in a way to show the backbutton or not depending on
[headerView.backButton setAlpha:backButton];
}
现在假设你有btHomeViewController,它从btBaseViewController派生而来
#import "btBaseViewController.h"
@interface btHomeViewController : btBaseViewController
@end
在btHomeViewController.mviewdidload中写代码为
-(void)viewDidLoad {
if(self.navigationController.viewControllers.count >=2 ) {
// it means you have some thing on viewcontroller & you can go back
[self showHeaderViewWithBackButton:YES];
}
}
我已尽力提出解决方案。您需要对其进行更多调整。