【问题标题】:Cannot talk to elements inside xib无法与 xib 中的元素对话
【发布时间】: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


【解决方案1】:

您是否将视图连接到 File 的所有者插座?尝试删除文件的所有者或连接并将视图连接到 MyToolbar.h 出口。我试过了,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2023-02-16
    • 2014-03-16
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多