【问题标题】:When can you set Interface Builder objects' properties?什么时候可以设置 Interface Builder 对象的属性?
【发布时间】:2012-02-03 16:11:57
【问题描述】:

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

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

【问题讨论】:

    标签: iphone ios xcode cocoa-touch uikit


    【解决方案1】:

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

    请务必致电[super viewDidLoad]

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

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

    这将导致编译器不关心的错误。本质上,您的滑块代码将等同于

    [nil setMinimumValue:newVal];
    

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

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

    【讨论】:

    • 关于步进器,我在 viewDidLoad 中有以下内容(在 [super viewDidLoad] 之后)[self.animalCountStepper setMinimumValue:1.0]; 为了更好地衡量,我还在检查器的 IB 中设置了步进器的最小值。但它仍然显示 0。
    • @WillLarche 尝试 NSLog(@"stepper %@", self.animalCountStepper);如果那是零,你忘了像 Rob 一样连接 IBOutlet,我建议可能是问题所在。
    【解决方案2】:

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

    由于我没有看到你的代码,我只能猜测哪里出了问题。我怀疑您的视图控制器有一个引用步进器的属性和另一个引用图像视图的属性,并且您正在使用这些属性设置值,如下所示:

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

    如果您的代码具有该基本结构并且无法正常工作,则您可能忘记在您的 nib 中关联这些属性。

    【讨论】:

      【解决方案3】:

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

      IBOutlet imageView *theImageView;
      

      您可以像这样设置 UIImageView 属性之一:

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

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

      【讨论】:

        【解决方案4】:

        啊。我看到了问题。我有一个显示值的 UILabel,但在值更改之前,我还没有设置它来连接到 UIStepper 的值。我的错。谢谢大家!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-11
          • 1970-01-01
          • 1970-01-01
          • 2013-08-29
          • 1970-01-01
          • 2015-11-25
          相关资源
          最近更新 更多