在ClassA_VC我做的:
ClassB_VC *classB_VC=[ClassB_VC alloc]initWithNibName:@"ClassB_VC" bundle:nil];
[self.view addSubview:classB_VC.view];
然後在ClassB_VC我有一個的UITextField。我在IB中設置textfield和File的所有者之間的委託連接,我在@interface聲明中添加,並像往常一樣編寫協議方法(textFieldDidEndEditing,textFieldDidBeginEditing等)。
這應該可以,但是當我觸摸文本框時,我得到了一個異常。看起來textfield沒有到達它的代表。
但是,如果我使用presentModalViewController呈現視圖,一切工作正常。我寧願不必這樣做,因爲這些視圖是到一個tabViewController,我不想隱藏tabBar時顯示。
我希望你明白我想說什麼。我的英文不是很好。
完整的異常消息會有幫助。由於UITextFieldDelegate的所有方法都是可選的,因此接口文件中的協議引用或拼寫委託方法簽名不應該是一個問題,它看起來更像是內存問題。 –
好吧,就是這一點。沒有消息,只是凍結。我得到的是線程1的軌跡顯示了這些最後一行:0 objc_msgSend 1 - [UITextField canBecomeFirstResponder] 2- [UIResponder becomeFirstResponder] 3 - [UITextInteractionAssistant setFirstResponderIfNecessary]看起來添加的視圖不是第一響應者。我試圖在viewDidLoad中強制[self.view becomeFirstResponder],但仍然是一樣的。如果我將UITextField從委託中解除鏈接,它不會崩潰,但我無法隱藏鍵盤等等。 – rmvz3
您可能已在委託方法的某個位置創建了一個無限循環,請嘗試對它們進行註釋。如果問題仍然存在,則需要檢查InterfaceBuilder連接,但不要讓您將UITextField插座連接到其他類型插座,但您可能在創建連接後手動更改插座類。或者你是否在代碼中手動設置了這個插座? –