我开始了一个带有故事板的项目,它有很多视图,每个视图都有相同的标题(带有图像,公司名称和两个按钮)。我想在主视图中执行一次,并使其可以重用于其他视图。
答案 0 :(得分:1)
您可以使用标题创建包含视图控制器。然后,将当前的根视图控制器(故事板中的当前初始视图控制器)添加到包含该视图控制器。
答案 1 :(得分:1)
使用XIB创建名为HeaderView的自定义视图:
在HeaderView.h中,您必须定义协议以及与要在标题中显示的控件相关的属性。@protocol HeaderViewDelegate <NSObject>
- (void)onBackButtonTapped;
@end
@interface HeaderView : UIView
@property (nonatomic, strong) IBOutlet UIImageView *headerImageView;
@property (nonatomic, weak) id <HeaderViewDelegate> delegate;
-(IBAction)backButtonTapped:(id)sender;
@end
在Header.m中:
@implementation HeaderView
-(IBAction)backButtonTapped:(id)sender
{
if (delegate != nil && [delegate respondToSelector:@selector(onBackButtonTapped)])
{
[delegate onBackButtonTapped];
}
}
@end
现在你需要做的是创建一个BaseViewController,并且应该从这个控制器扩展每个控制器,以便在所有视图中显示相同的标题。
请告诉我您对此实施有任何疑问。
答案 2 :(得分:0)
我已设法根据此post创建可重复使用的视图。
将initWithCoder替换为以下内容:
-(void)awakeFromNib {
//Note that you must change @”BNYSharedView’ with whatever your nib is named
[[NSBundle mainBundle] loadNibNamed:@"BNYSharedView" owner:self options:nil];
[self addSubview: self.contentView];
}
在ViewControllers中创建视图,并将其类设置为SharedView
另一个解决方案是使用Container View Controller,至于您的具体情况,我尝试为您实施demo,请尝试一下!
希望它可以提供帮助!
答案 3 :(得分:0)
为什么不使用NavigationController作为rootviewControoler with leftBarbutton和rightbarButton 这样它就可以在你的整个应用程序中