我有一个基础视图控制器类,它继承自UIViewController
和基类viewcontroller
类的继承类。现在我有一个nib,其文件所有者是继承的类,但我的所有操作和出口都在基类中。甚至可以将nib文件中的action \ outlet连接到基类中的那个?
答案 0 :(得分:30)
我基本上会按example解释一下:
定义一个基类(让我们称之为BaseViewController
)并在.h文件中为它分配一个UITableView
IBoutlet:
// BaseViewController.h
@interface BaseViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@end
定义两个子类(即FirstChildViewController
和SecondChildViewController
):
// FirstChildViewController.h
@interface FirstChildViewController : BaseViewController
@end
// SecondChildViewController.h
@interface SecondChildViewController : BaseViewController
@end
现在要使子类中的任何一个(或两个)都使用基类的iboutlet,只需将引用出口拖到基类.h文件中的属性定义中......就是这样!
here是一个完整的项目,可以说明这一点。
答案 1 :(得分:7)
实现此目的的两种方法:
1)
以编程方式(即代码中)执行
首先在基类中声明你的网点。
然后通过继承类中的代码分配您的商店。
和
2)
您还可以在XIB文件中分配插座和操作。 Xcode了解基类的继承出口和操作。
答案 2 :(得分:5)
如果基类在Swift框架中,那么有时Xcode 7将不会看到出口,即使基类及其出口是公开的。在这种情况下,解决方法如下:
IB将显示"!"在出口旁边,就好像它们丢失一样,但在运行时不会出现错误。
如果有人有更好的解决方法,请告诉我们!