3 回答
TA贡献1843条经验 获得超7个赞
还有一种更简单的方法来访问视图,而不是将nib作为数组处理。
1)创建一个自定义View子类,其中包含您希望以后可以访问的任何出口。 - 我的看法
2)在你想要加载和处理nib的UIViewController中,创建一个IBOutlet属性来保存加载的nib的视图,例如
在MyViewController中(一个UIViewController子类)
@property (nonatomic, retain) IBOutlet UIView *myViewFromNib;
(别忘了合成它并在你的.m文件中发布它)
3)在IB中打开你的笔尖(我们称之为'myViewNib.xib'),将你文件的所有者设置为MyViewController
4)现在将文件的所有者插座myViewFromNib连接到笔尖中的主视图。
5)现在在MyViewController中,写下以下行:
[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
现在,只要您这样做,调用您的属性“self.myViewFromNib”将允许您从笔尖访问视图!
TA贡献1842条经验 获得超21个赞
谢谢你们。我确实找到了一种方法来做我想做的事。
UIView
用IBOutlet
你需要的东西创造你的。在IB中创建xib,根据自己的喜好设计它并将其链接如下:文件的所有者属于类
UIViewController
(没有自定义子类,但是“真正的”子类)。文件所有者的视图连接到主视图,其类声明为步骤1)中的类。将控件与
IBOutlet
s 连接。在
DynamicViewController
可以运行它的逻辑来决定哪些视图/厦门国际银行加载。一旦它做出了决定,在loadView
方法中放了这样的东西:NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"QPickOneView" owner:self options:nil];QPickOneView* myView = [ nibViews objectAtIndex: 1];myView.question = question;
而已!
主bundle的loadNibNamed
方法将负责初始化视图和创建连接。
现在,ViewController可以根据内存中的数据显示一个或另一个视图,而“父”屏幕不需要打扰这个逻辑。
- 3 回答
- 0 关注
- 429 浏览
添加回答
举报