故事板中的我的对象无法与代码正确链接

时间:2012-06-07 16:15:59

标签: iphone objective-c hyperlink storyboard iboutlet

我正在尝试在我的应用程序中使用故事板。我开始很好,我添加了两个视图控制器,按钮从第一个到第二个。 问题出在第二个视图控制器中:我在其上添加的对象和与代码链接的对象不起作用。当我在视图控制器代码中设置断点时,'self.property'设置为nil,而它应该由故事板实例化。

我一直在寻找一个小时的答案,我真的不明白这个问题,因为其余的一切似乎都很好。

我试图在代码中编写属性(强/非原子,非原子/保留甚至弱/非原子),将对象直接链接到代码,以便它自动创建属性,但我从来没有得到任何其他东西比断点的“零”。

viewController.h:

@interface NMLoadingViewController : UIViewController
{
    __weak IBOutlet UIProgressView *imageProcessingProgressView;
}
@property (weak, nonatomic) IBOutlet UIProgressView *imageProcessingProgressView;

@end

的.m:

@synthesize imageProcessingProgressView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // Custom initialization
    NSLog(@"INIT.");
}

(不是其他无关代码行)

如果我将断点设置为“INIT”。 line,我的imageProcessingProgressView是零。我看不出原因,我想我错过了一些细节......

(注意我已经尝试过其他对象,比如UILabel,但它也没有用。陌生人,当我有两个对象时,其中一个有一个不是零的地址,但它仍然被破坏了没有显示正确的对象。)

编辑:没有什么麻烦......问题在于XCode中的变量视图,它将我的变量显示为“nil”,而日志则显示了一个正确的对象......

3 个答案:

答案 0 :(得分:1)

确保NMLoadingViewController是viewController上的类

答案 1 :(得分:1)

删除此...

{
    __weak IBOutlet UIProgressView *imageProcessingProgressView;
}

......并使财产变得强大。

将您的日志消息更改为...

NSLog(@"INIT: %@", self.imageProcessingProgressView);

...看看你是否还有问题。如果你这样做,那么再看一下你的故事板连接。

答案 2 :(得分:0)

首先尝试@Eric的答案,因为我确实认为这是真正的问题。

此外,请确保您实际上正在使用界面构建器将控件挂钩回视图控制器。这是通过将一行从控件拖回视图控制器的属性来完成的。