无法与xib内的元素交谈

时间:2014-12-09 09:57:25

标签: ios iphone interface-builder xib

我还在学习界面构建器。

我创建了一个包含按钮,进度条和微调器的xib。让我们调用这个xib MyToolbar.xib。我为该xib创建了类(MyToolbar.h和.m)。在xib中,我将工具栏的类设置为MyToolbar。在xib中我将File的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];

此时,工具栏不是nil,但toolbar.button,toolbar.progessBar和toolbar.spinner都是零。

我知道除非你显示元素,否则不会实例化元素。

有没有办法让这项工作没有显示对象?

1 个答案:

答案 0 :(得分:1)

您是否将视图连接到文件的所有者出口?尝试删除文件的所有者或连接,并将视图连接到MyToolbar.h出口。我试过了,它正在工作。