2015-10-15 2 views
1

Я создал два контроллера вида, ViewControllerOne и DetailViewController. И я дал действие к UIButton, когда нажата кнопка будет идти на второй контроллер представления,Предупреждение - чей вид не находится в иерархии окон в IOS 9

- (IBAction)loginButtonPressed:(UIButton *)sender { 
self.loginButton.hidden= YES; 
self.aview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"authentication.png"]]; 

LAContext* context = [[LAContext alloc]init]; 
NSError* error = nil; 

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { 
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Authenticate with Touch ID" reply:^(BOOL success, NSError*error){ 
     if (success) { 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       self.loginButton.hidden= NO; 
       self.aview.backgroundColor = [UIColor clearColor]; 
       DetailViewController* detailViewController = [[DetailViewController alloc]init]; 
       [self presentViewController:detailViewController animated:YES completion:nil]; 


      }); } 

но его дает ошибку,

<ViewController: 0x7f97e9da7d60> whose view is not in the window hierarchy! 

Когда кнопка нажата его движения к DetailViewController но экран черный, его не показаны детали в DetailViewController.

+0

Возможно, вы захотите проверить [документацию по segues] (https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html). – Edman

+0

Я хочу программно выделить segue. Фактически я даю этот метод, когда пользовательский идентификатор касания переходит в DetailViewController. Я обновил свой вопрос. –

ответ

2

Если вы добавили свой DetailViewController в раскадровку, возможно, вам понадобится , ссылаясь на то же самое из раскадровки при создании экземпляра.

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"your_storyboard_name" bundle: nil]; 
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"your_storyboard_identifier"]; 
[self presentViewController:detailViewController animated:YES completion:nil]; 

Когда вы инициируете использование alloc/init, это просто создает пустую диспетчер представлений.

+0

Большое спасибо. Рашми ....... Теперь проблема решена, но все же показывается ошибка ... чей взгляд не в иерархии окон! –

+0

Я не уверен, какой вид нет в окне! Это ViewControllerOne или DetailViewController? Зависит от того, как вы добавляете ViewControllerOne в главное окно. –

+1

Нашел. Эта ошибка для UIAlertController. благодаря –

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