編輯 -
我不小心合成parentViewController
編輯/
dismissModalViewControllerAnimated:凍結的應用程序,而不是崩潰
這是工作,現在不,我不認爲我有在代碼中做了任何會影響這種行爲的東西。
這是我在做什麼:
我有一個視圖和相關的視圖控制器,稱爲NewAssetViewController
。 NewAssetViewController的觀點有UITextField
小號and UITextView
個混合:
當我點擊UITextView
我收到的委託方法textViewShouldBeginEditing:
在這種方法給你我customController觀點稱爲MultiPicker
:
[self presentModalViewController:multiPicker animated:YES];
如果用戶選擇這個接口上的一個按鈕或者取消,或者返回一個選擇的值,我只會使用cancel方法,因爲它的行爲方式相同,並且沒有任何額外的代碼。
multipicker的取消方法:
-(IBAction)cancel:(id)sender
{
//close returning nothing...
[delegate multiPickerDidCancel:self];
}
這就要求NewAssetController
的multiPickerDidCancel:
方法:在這一點上,現在它凍結
-(void)multiPickerDidCancel:(MultiPicker *)aMultiPicker
{
[self dismissModalViewControllerAnimated:YES];
[aMultiPicker reset];
}
,不會崩潰,如果我暫停調試器,這是跟蹤看起來是什麼樣的:
用上面的框代表一些組件:
0x00ec121e <+0317> mov %eax,%edi
0x00ec1220 <+0319> jmp 0xec11bb <-[UIViewController dismissModalViewControllerWithTransition:]+218>
0x00ec1222 <+0321> mov 0x4e446b(%ebx),%eax
0x00ec1228 <+0327> mov %eax,0x4(%esp)
0x00ec122c <+0331> mov %edi,(%esp)
0x00ec122f <+0334> call 0x128e98a <dyld_stub_objc_msgSend>
0x00ec1234 <+0339> mov %eax,-0x1c(%ebp)
0x00ec1237 <+0342> mov 0x4e1bcb(%ebx),%edx
0x00ec123d <+0348> mov %edx,0x4(%esp)
0x00ec1241 <+0352> mov %esi,(%esp)
0x00ec1244 <+0355> call 0x128e98a <dyld_stub_objc_msgSend>
0x00ec1249 <+0360> cmpl $0x3,-0x20(%ebp)
0x00ec124d <+0364> jne 0xec1277 <-[UIViewController dismissModalViewControllerWithTransition:]+406>
0x00ec124f <+0366> mov 0x4e295f(%ebx),%eax
0x00ec1255 <+0372> mov %eax,0x4(%esp)
0x00ec1259 <+0376> mov %edi,(%esp)
我剛剛創建了一個測試項目,也做了同樣的,和一切工作,所以我懷疑,也許它與該選擇器你有做模態視圖控制器。嘗試創建一個真正基本的Modal視圖控制器(比方說,只有一個按鈕),看看會發生什麼。 – Idan 2011-06-10 20:57:10
我想我有意外地合成了parentViewController ......該死的文本完成。 – 2011-06-10 21:44:02