2015-03-10 2 views
1

Я столкнулся с проблемой с помощью UITextView & UITextField в Xcode 6.UITextView & UITextField не реагирует после того, как [самостоятельного presentViewController: анимированный: завершение:]

Скажите, что я имею вид A (Main View) После нажатия кнопки , другой вид В представлен следующим способом:

B * bView = [[B alloc] initWithNibName:@"B" bundle:nil]; 
[bView setModalPresentationStyle:UIModalPresentationFormSheet]; 
[self presentViewController:bView animated:TRUE completion:nil]; 

В вид B, определенное нажатии кнопки, а другой вид с представлен с использованием того же метода:

C * cView = [[C alloc] initWithNibName:@"C" bundle:nil]; 
[cView setModalPresentationStyle:UIModalPresentationFormSheet]; 
[self presentViewController: cView animated:TRUE completion:nil]; 

View C имеет два UITextView. При взаимодействии пользователя, метод:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

называется, но ничего не происходит, приложение зависает и все останавливается + клавиатура никогда не отображается ..

КСТАТИ: В тренажере, если я использую аппаратная клавиатура, все работает нормально. На устройстве, если я подключаю Bluetooth-клавиатуру, все работает нормально. В противном случае, когда я использую IOS проблема клавиатуры происходит ..

Кроме того, на Xcode 5 все работает очень хорошо

Это функция он застрял в

libsystem_kernel.dylib`mach_msg_trap: 
0x194e6ce74: movn x16, #30 
0x194e6ce78: svc #128 
0x194e6ce7c: ret -----------> Thread 1 : Signal SIGSTOP 

В ожидании вашего ответы.

Спасибо, Ахмед

+0

Если вы нажмете кнопку паузы (рядом с кнопкой переключения точки останова внизу), что получится? Он должен сломаться в коде сборки, и вы можете прочитать имя функции, за которой она застряла. Это должно дать вам некоторые подсказки. –

+0

Испытываете ли вы в симуляторе? – MadhuP

+0

@ MadhuP: Я тестирую как в симуляторе, так и в устройстве, оба одинакового поведения (это не проблема подключения аппаратной клавиатуры) –

ответ

0

Нажмите паузу и увидеть, где цикл запуска застревает, прочитав название функции он находится на:

Pressing Pause

1

Я решил вопрос .. Кажется, что в Xcode 6 и iOS 8 уже невозможно установить супервизор в метод viewWillLayoutSubviews после вызова текущегоViewController.

- (void)viewWillLayoutSubviews{ 
    [super viewWillLayoutSubviews]; 
    self.view.superview.bounds = CGRectMake(0, 0, 700, 550); 
} 

Так Удаляя

self.view.superview.bounds = CGRectMake(0, 0, 700, 550); 

из приведенной выше функции, она работала.

Просто добавьте

VC.preferredContentSize = CGSizeMake(700, 550); 

в контроллере представления родителя перед вызовом

[self presentViewController:VC animated:TRUE completion:nil]; 

, чтобы выразить мнение правильный кадр.

Спасибо всем.

+0

Наконец-то! Спасибо, это решает проблему на iOS 8, но на iOS 7 вы должны изменить границы супервизора или ваш размер представления может быть неправильным. Требуется версия версии iOS. –

Смежные вопросы