我有以下代碼視圖 - 控制不會解僱
- (void) viewWillAppear:(BOOL)animated
{
NSLog(@"dismiss view");
[self dismissModalViewControllerAnimated:YES];
}
此打印駁回觀點,但不會執行該視圖解僱代碼。
在IBAction中沒有觸發器的代碼中,視圖能否被解散?
爲什麼這不會執行?
我有以下代碼視圖 - 控制不會解僱
- (void) viewWillAppear:(BOOL)animated
{
NSLog(@"dismiss view");
[self dismissModalViewControllerAnimated:YES];
}
此打印駁回觀點,但不會執行該視圖解僱代碼。
在IBAction中沒有觸發器的代碼中,視圖能否被解散?
爲什麼這不會執行?
你可能有更好的運氣把代碼放到viewDidAppear
,而不是viewWillAppear
。後者傾向於在任何動畫開始時被調用,例如模式開始滑出屏幕;當動畫完全結束時,前者往往會被調用。請注意,即使這種策略起作用,您最終可能會產生一種奇怪的效果,從而看到兩個模態一個接一個地滑落;我想你只是想要一個滑落效果。
如果您忽略「降低」模式對話框(第一個按下的對話框),並且不打擾解除最頂層的對話框會發生什麼?
也可以考慮在關閉模態視圖控制器時注意animated
參數。當您遇到像您這樣的問題時,動畫或不動畫的不同組合可以產生不同的效果。
如果您發佈了更完整的代碼示例,我們可以給出更好的答案!
完美,謝謝。 :)將代碼移動到viewDidAppear,它的工作原理。 – jarryd 2011-04-03 00:00:11
嘗試在第二次解僱時稍稍延遲。
- (void) viewWillAppear:(BOOL)animated
{
NSLog(@"dismiss view");
[self performSelector:@selector(delayedDismiss) withObject:nil afterDelay:0.5];
}
-(void)delayedDismiss{
[self dismissModalViewControllerAnimated:YES];
}
你能發表介紹模態視圖控制器的代碼嗎? – 2011-04-02 22:20:57
林不知道是否是這樣,因爲我有一個叫做closeView的方法,當按下「後退」按鈕時我會調用它,這會正確地解除視圖。如果我在viewWillAppear方法中調用closeview方法,它不會執行。在viewWillAppear中調用視圖時是否有可能不被解僱? – jarryd 2011-04-02 22:25:16
爲什麼你會在其viewWillAppear方法中忽略視圖? – ennuikiller 2011-04-02 22:25:16