什么时候可以设置Interface Builder对象的属性?

时间:2012-01-05 20:23:50

标签: iphone ios xcode cocoa-touch uikit

在视图生命周期中,您可以更改IB中放置的对象的值吗?

我有一个步进器和一个UIImageView,我把它放在IB的视图中。我在ViewDidLoad中放了一些它们的值(比如stepper min和UIImageView的图像),但是当视图出现时,它使用了stepper min和在IB中设置的图像。

4 个答案:

答案 0 :(得分:0)

您可以设置您尝试的属性。

请务必致电[super viewDidLoad]

- (void)viewDidLoad
{
    [super viewDidLoad];  
    // adjust views here
}

您可能忘记在IB中连接IBOutlets:

这将导致编译器不关心的错误。基本上你的滑块代码相当于

[nil setMinimumValue:newVal];

我可以在测试程序中运行以下代码,不会发生任何投诉或崩溃

UIStepper * step = nil;
step.minimumValue = 5;

答案 1 :(得分:0)

您可以在viewDidLoad中设置这些值。如果您发布了viewDidLoad源代码,那将会很有帮助。

由于我没有看到你的代码,我只能猜出错误。我怀疑你的视图控制器有一个引用步进器的属性和另一个引用图像视图的属性,你使用这些属性设置值,如下所示:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.stepper.minimumValue = minValueForStepper();
    self.imageView.image = imageForImageView();
}

如果您的代码具有该基本结构且无效,您可能忘记在笔尖中连接这些属性。

答案 2 :(得分:0)

我不太了解你的问题,但如果你想设置你的IBOutlets你可以以编程方式进行,例如,如果你有:

IBOutlet imageView *theImageView;

您可以设置其中一个UIImageView属性:

[theImageView setImage:[UIImage imageNamed:@"theimage.png"]];

您可以在Xcode的Organizer视图中学习您感兴趣的所有类,在这里您可以查看它的所有属性,方法,委托方法等。

答案 3 :(得分:0)

阿。我看到了问题。我有一个显示值的UILabel,我没有设置它连接到UIStepper的值,直到值改变。我的错。谢谢你们!