在視圖生命週期中,您是否可以更改在IB中放置的對象的值?什麼時候可以設置Interface Builder對象的屬性?
我有一個步進器和一個UIImageView,我把它放到IB的視圖中。我已經在ViewDidLoad中加入了一些值(比如stepper min和UIImageView的圖像),但是當視圖出現時,它使用步進min和IB中設置的圖像。
在視圖生命週期中,您是否可以更改在IB中放置的對象的值?什麼時候可以設置Interface Builder對象的屬性?
我有一個步進器和一個UIImageView,我把它放到IB的視圖中。我已經在ViewDidLoad中加入了一些值(比如stepper min和UIImageView的圖像),但是當視圖出現時,它使用步進min和IB中設置的圖像。
啊。我看到了問題。我有一個UILabel顯示的值,我沒有設置它連接到UIStepper的值,直到值改變。我的錯。多謝你們!
您可以設置您正在嘗試的屬性。
確保調用[super viewDidLoad]
- (void)viewDidLoad
{
[super viewDidLoad];
// adjust views here
}
有可能你忘了你的IBOutlets連接在IB:
這將導致編譯器不關心的錯誤。基本上你的滑塊的代碼就相當於
[nil setMinimumValue:newVal];
我可以在測試程序運行下面的代碼,並沒有投訴或事故發生
UIStepper * step = nil;
step.minimumValue = 5;
可以在viewDidLoad
設置這些值。如果您發佈了viewDidLoad
源代碼,這將會有所幫助。
由於我沒有看到你的代碼,我只能猜測什麼是錯的。我懷疑你的視圖控制器有一個屬性引用步進和另一個屬性引用的圖像視圖,並且使用的是這些屬性設置值,如:
- (void)viewDidLoad {
[super viewDidLoad];
self.stepper.minimumValue = minValueForStepper();
self.imageView.image = imageForImageView();
}
如果你的代碼有基本結構,它不工作,你可能忘了把這些屬性掛在你的筆尖上。
我不明白你的問題非常好,但如果你想設置你的IBOutlets例如,您可以通過編程做,如果你有一個:
IBOutlet imageView *theImageView;
您可以設置UIImageView的性質類似的一個:
[theImageView setImage:[UIImage imageNamed:@"theimage.png"]];
您可以在Xcode的Organizer視圖中學習您感興趣的所有類,在這裏您可以查看其所有屬性,方法,委託方法等等。
關於步進,我有以下在viewDidLoad中(後[超級viewDidLoad中]) '[self.animalCountStepper setMinimumValue:1.0];' 良好的措施,我也有步進的最小值在IB中設置檢查員。但它仍然說0. – 2012-01-06 16:44:39
@WillLarche嘗試NSLog(@「stepper%@」,self.animalCountStepper);如果這是零,你忘了連接IBOutlet像羅布,我建議可能是問題。 – 2012-01-06 18:22:49