【发布时间】:2014-12-09 09:57:25
【问题描述】:
我还在学习界面构建器。
我创建了一个包含按钮、进度条和微调器的 xib。让我们称之为 xib MyToolbar.xib。我为那个 xib(MyToolbar.h 和 .m)创建了类。在 xib 中,我将工具栏的类设置为 MyToolbar。在 xib 中,我将 File's Owner 设置为 MyToolbar。我将插座连接到所有元素并将它们放在标题上。
类头是这样的:
#import <UIKit/UIKit.h>
@interface MyToolbar : UIToolbar
@property (weak, nonatomic) IBOutlet UIButton *button;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *spinner;
@property (weak, nonatomic) IBOutlet UIProgressView *progressBar;
@end
这是实现
#import “MyToolbar.h"
@implementation MyToolbar
- (id)init {
self = [super init];
if (self) {
self = [[[NSBundle mainBundle] loadNibNamed:@"MyToolbar"
owner:self
options:nil]
objectAtIndex:0];
}
return self;
}
现在我在主类上创建对象
MyToolbar *toolbar = [[MyToolbar alloc] init];
此时toolbar不是nil,但是toolbar.button、toolbar.progessBar和toolbar.spinner都是nil。
我知道元素不会被实例化,除非你显示它们。
有没有办法让这项工作不显示对象?
【问题讨论】:
-
您是否将 xib 视图连接到
IBOutlets? -
是(现在将此添加到问题中)
-
试过 MyToolbar *toolbar = [[MyToolbar alloc] initWithNibName:@"MyToolbar"]?
-
您是否将视图连接到文件的所有者插座?尝试删除文件的所有者或连接并将视图连接到 MyToolbar.h 出口。我试过了,效果很好。
-
@Anil - 工具栏上没有这样的方法。
标签: ios iphone interface-builder xib