3 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
覆蓋-viewDidAppear:
,而不是-viewWillAppear
,并確保打電話[super viewDidAppear:]
。當(dāng)您不在屏幕上時(shí)(“將出現(xiàn)”),您不應(yīng)該執(zhí)行動畫。和-viewDidAppear:
文檔說明,你必須調(diào)用super
,因?yàn)樗麄冇凶约旱氖虑橐觥?/p>

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我很快就遇到了類似的錯(cuò)誤:
解散模態(tài)視圖
更新主視圖
提出一個(gè)新的模態(tài)視圖
我注意到我只是在模擬器中而不是在設(shè)備上。另外,我陷入了無限循環(huán)。
我的解決方案是推遲新模態(tài)視圖的呈現(xiàn)。似乎快速更新視圖層次結(jié)構(gòu)導(dǎo)致Apple的代碼中出現(xiàn)了一些競爭條件。
考慮到這一點(diǎn),試試這個(gè):
- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1]; }
您可能在為尚未在屏幕上顯示UITextField的鍵盤時(shí)遇到問題。這可能會導(dǎo)致類似我的問題。
此外,為了以防萬一,您在呈現(xiàn)鍵盤之前暫停給予層次結(jié)構(gòu)更新時(shí)間。
希望這可以幫助。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
檢查您是否只與主線程上的UI進(jìn)行交互。我wait_fences: failed to receive reply: 10004003
坐在那里等待UIAlertView顯示大約5秒,因?yàn)橄嚓P(guān)代碼是在后臺線程上執(zhí)行的。您可以通過將代碼放入塊并將其發(fā)送到主線程來確保:
dispatch_async(dispatch_get_main_queue(), ^{ if (!success) { // Inform user that import failed UIAlertView * importFailedAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorTitle5", @"Import failed") message:NSLocalizedString(@"Error5", @"Something went wrong") delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", nil) otherButtonTitles:nil]; [importFailedAlert show]; }});
- 3 回答
- 0 關(guān)注
- 540 瀏覽
添加回答
舉報(bào)