2015-12-02 4 views
0

Из последних нескольких дней я столкнулся с странным keyboard вопросом, который происходит только в iPhone 5c.Клавиатура Скрыть/Показать вопрос в iPhone 5c

Я использую objective-C для развития в Xcode-6.4

Моя цель окружающей среды является ios7.

Вот как я обрабатываю keyboard Notification.

- (void)viewDidAppear:(BOOL)animated{ 

[super viewDidAppear:animated]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 

} 

Для Deregister Notification Я пишу этот кусок code.To быть уверены, что я использую -resignFirstResponder для каждого TextField.

- (void)viewWillDisappear:(BOOL)animated{ 

[super viewWillDisappear:animated]; 

[self hideKeyBoard]; 
[self.view endEditing:YES]; 

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 
} 


- (void)hideKeyBoard{ 

[kAgeTextField resignFirstResponder]; 
[kSchoolTextField resignFirstResponder]; 
} 

И в кнопке отправки Я проверил некоторое состояние, а затем показываю AlertView.

- (IBAction)submitClicked:(id)sender 
{ 
if(validated) 
{  
    [self.view endEditing:YES]; 
    [self hideKeyBoard]; 
    [self.view resignFirstResponder]; 

    [self makeApiCall]; 
} 
} 

Теперь, когда я получаю Success/Failure ответ от сервера я делаю this.This это блок, который запускается после получения ответа от сервера:

-(void)SuccessfulWithServerInfo:(id)responseInfo 
{ 
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
dispatch_async(dispatch_get_main_queue(),^{ 
    [appDelegate hideProgressViewFromView:self.view]; 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"Thanks for coming" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
    [alert show]; 
    [self.navigationController popToRootViewControllerAnimated:YES]; 


}); 

} 

Проблемы Когда я получаю alertBox и нажмите ОК. Затем клавиатура открывается и закрывается автоматически. Это происходит только для iPhone 5C. Я проверил его в 4s, 5s, 6 и 6Plus. Все работают нормально.

Если кто-нибудь знает об этом, пожалуйста, помогите.

ответ

0

После некоторых исследований я нашел этот ответ в stackOverflow.

Это некоторые изменения в поведении AlertView в ios7 и ios8.

Я использую этот код, чтобы решить мою проблему:

[self performSelector:@selector(showAlertView) withObject:nil afterDelay:0.6]; 

Для получения дополнительной информации, пожалуйста, ответить см this SO answer

0

Вы видите предупреждение в то же время, что вы делаете popToRootViewController. Возможно, это вызовет проблему.

  1. Показать предупреждение.
  2. Метод просмотра предупреждающего сигнала.
  3. Напишите [self.navigationController popToRootViewControllerAnimated: YES] в методе просмотра.

    [UIAlertView showWithTitle:@"" message:@"Thanks for coming" cancelButtonTitle:@"OK" otherButtonTitles:nil] alertViewStyle:UIAlertViewStyleDefault tapBlock:^(UIAlertView *alertView, NSInteger buttonIndex, NSString *text) 
    { 
        if(buttonIndex == 1) 
        { 
         [self.navigationController popToRootViewControllerAnimated:YES]; 
        } 
    }]; 
    

Надеется, что это поможет.

+0

не работает :(:( – Dalvik

+0

Try комментировать alertview код и запустить –

+0

без изменений ,,. , Мое все текстовые поля находятся в представлении таблицы ... будет ли проблема с просмотром таблицы – Dalvik

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