我正在为我的应用程序支持的每个方向创建2个视图控制器和2个笔尖 - 纵向和横向按照apple的建议。
问题是我将有大量重复的代码 - 继承工作在接口构建器中吗?
即。我可以在基类中声明一个iboutlet标签并将它用于两个笔尖吗?
编辑:我有2个控制器,都是从basecontroller继承的。我可以将我的IBactions和IBOutlets以及数组和tableview委托代码放在基础中,然后从2个不同的笔尖链接它吗?我试图摆脱一些重复答案 0 :(得分:1)
答:是的,它会起作用,使用initWithNibName用所需的Nib(xib)初始化控制器。
答案 1 :(得分:0)
我刚发布here但我认为你也可以从中受益。
我知道这是一个老线程,但我刚刚发现了一篇令人难以置信的博文here。
基本上,您必须遍历父类的所有视图,并将它们作为子视图添加到子类中。以下是我在项目中实施的方法:
// ChildViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
[self addSubviewsFromSuperclass];
}
// ParentViewController.h
- (void)addSubviewsFromSuperclass;
// ParentViewController.m
- (void)addSubviewsFromSuperclass
{
UIView *selfView = self.view;
UIView *nibView = nil;
@try
{
nibView = [NSBundle.mainBundle loadNibNamed:NSStringFromClass([self superclass]) owner:self options:nil][0];
}
@catch (NSException *exception)
{
NSLog(@"Something exceptional happened while loading nib:\n%@", exception);
}
self.view = selfView;
for (UIView *view in nibView.subviews)
{
[self.view addSubview:view];
}
}
addSuviewsFromSuperclass 方法不是我的编码。我必须完全赞赏我上面提到的博客文章的作者。下载他的示例项目,您将在他的JMViewController.m中找到它。