2015-02-11 3 views
1

У меня есть UIViewController с UITextView в раскадровке я присвоенного его с сильным variable.The первый раз, когда я представляю ViewController с помощью раскадровку непосредственно перейти нет аварии, но когда я уволить ViewController и снова представить ViewController во второй раз после того, как [UITextView becomeFirstResponder] называется сбой приложения и показывает следующую ошибкуUITextView becomeFirstResponder аварии с EXC плохим доступом

[UIViewController _responderWindow]: message sent to deallocated instance 

Я присвоению делегатом ViewController, в котором добавляется TextView и реализованы все методы делегата

Я попытался вызвать этот метод [UITextview becomeFirstResponder] после задержки , но никакой пользы это не было до сих пор грохотом

Я попытался профилирование с шаблоном зомби ошибки в UIKit

это ответ я получаю, когда приложение разбилось, если включить зомби в схеме продукта

[ReviewViewController _responderWindow]: message sent to deallocated instance 0x14ed3a2a0 

это код, я использую, чтобы представить ViewController, который имеет TextView

[_promotionsViewControllerDelegate performSegueWithIdentifier:@"testing" sender:nil]; 

TextView ViewController

- (void)viewDidLoad { 
     [super viewDidLoad]; 
     _reviewTextView.delegate = self; 
     [_reviewTextView becomeFirstResponder]; 
     } 

это обратно след журнала ошибок, когда я запустить приложение без зомби

* thread #1: tid = 0x758d4, 0x000000019271bbd0 libobjc.A.dylib`objc_msgSend + 16, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x174697260) 
    frame #0: 0x000000019271bbd0 libobjc.A.dylib`objc_msgSend + 16 
    frame #1: 0x000000018675f96c UIKit`-[UIView(Internal) _firstResponder] + 24 
    frame #2: 0x000000018675f940 UIKit`-[UIResponder isFirstResponder] + 32 
    frame #3: 0x0000000186e96ed8 UIKit`-[UITextView _keyboardDidShow:] + 32 
    frame #4: 0x0000000181f58ae4 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20 
    frame #5: 0x0000000181e97220 CoreFoundation`_CFXNotificationPost + 2060 
    frame #6: 0x0000000182d96cc0 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 72 
    frame #7: 0x0000000186e5f458 UIKit`-[UIInputWindowController postEndNotifications:withInfo:] + 580 
    frame #8: 0x0000000186e60c7c UIKit`__77-[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:]_block_invoke595 + 396 
    frame #9: 0x000000018679c0a4 UIKit`-[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 408 
    frame #10: 0x000000018679bc0c UIKit`-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 188 
    frame #11: 0x000000018679bb14 UIKit`-[UIViewAnimationState animationDidStop:finished:] + 104 
    frame #12: 0x00000001860c0f64 QuartzCore`CA::Layer::run_animation_callbacks(void*) + 296 
    frame #13: 0x00000001002b4df0 libdispatch.dylib`_dispatch_client_callout + 16 
    frame #14: 0x00000001002b975c libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1056 
    frame #15: 0x0000000181f69fa4 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
    frame #16: 0x0000000181f6804c CoreFoundation`__CFRunLoopRun + 1492 
    frame #17: 0x0000000181e950a4 CoreFoundation`CFRunLoopRunSpecific + 396 
    frame #18: 0x000000018b0375a4 GraphicsServices`GSEventRunModal + 168 
    frame #19: 0x00000001867ca3c0 UIKit`UIApplicationMain + 1488 
    * frame #20: 0x00000001000c1030 WineDisciples`main(argc=1, argv=0x000000016fd83a58) + 116 at main.m:14 
    frame #21: 0x0000000192d76a08 libdyld.dylib`start + 4 

Прошу вас помочь мне на этом спасибо ..

+0

ли вы когда-нибудь удалось решить эту проблему? –

ответ

0

Вы проверили свой Идентификатор в окне инспектора, аналогично указанному в коде (т.е. «тестирование»)?

Также в вашем файле .h вы дали. Если нет, добавьте его.

+0

Я использовал отдельный viewcontroller для целей тестирования, и я также дал такое же «тестирование» в инспекторе. – user2922409

+0

Но если я попытаюсь имитировать тот же сценарий в другом проекте, это не сбой. Поэтому я попробовал использовать навигационный контроллер sepeate и эти файлы раскадровки не связаны с какими-либо пользовательскими классами. У меня есть textview в rootviewcontroller и еще один viewcontroller с текстовым просмотром, который ia проталкивает рассказную панель segue с помощью действия кнопки. Я редактирую текстовое представление в контроллере корневого представления и перехожу к следующей сцене и редактирование туда вернулось, попробовал отредактировать приложение, разбитое с той же ошибкой. Я застрял с этим в течение 2 дней – user2922409

0

Может быть, слишком поздно, но у меня была такая же проблема, и решение было отправить удалить из надтаблицы в методе dealloc моего VWC

deinit { 
    self.commentTextView.delegate = nil 
    self.commentTextView.removeFromSuperview() 
} 
Смежные вопросы