2015-11-17 4 views
4

Контроллер текущего представления не работает с ios 9, , когда я нажимаю кнопку, она не перенаправляется на текущий контроллер представления.Нынешний контроллер просмотра, не работающий с ios 9

Почему это происходит?

Я попытался приведенный ниже код

RegistrationViewController * viewController =[[UIStoryboard storyboardWithName:@"Registration" bundle:nil] instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 
[self presentViewController:viewController animated:YES completion:nil]; 

Я также попытался код ниже

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Registration" 
                 bundle:nil]; 
RegistrationViewController *add = 
[storyboard instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 
[self presentViewController:add animated:YES completion:^{ 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self presentViewController:add 
           animated:YES 
          completion:nil]; 
     }); 
    }]; 

Редактировать

Мой полный код здесь. Я использую Xcode 7 и запустить его с прошивкой 9

#import "LoginViewController.h" 
#import "RegistrationViewController.h" 

@interface LoginViewController() 

@end 

@implementation LoginViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 


- (IBAction)actionRegistrationClicked:(id)sender 
{ 
    RegistrationViewController * viewController =[[UIStoryboard storyboardWithName:@"Registration" bundle:nil] instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 
    [self presentViewController:viewController animated:YES completion:nil]; 

} 
@end 

вид регистрации контроллер

#import "RegistrationViewController.h" 

@interface RegistrationViewController() 

@end 

@implementation RegistrationViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+0

да, вы можете увидеть код, который я написал в моем вопросе –

+0

Убедитесь, что '[storyboard instantiateViewControllerWithIdentifier]' возвращает экземпляр контроллера представления. – ProblemSlover

+0

Почему вы представляете два раза? –

ответ

10

Убедитесь, что presentedViewController равна нулю. Если представленныйViewController не равен нулю, измените код на следующий.

RegistrationViewController * viewController =[[UIStoryboard storyboardWithName:@"Registration" bundle:nil] instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 

if ([self presentedViewController]) { 
    [[self presentedViewController] dismissViewControllerAnimated:NO completion:^{ 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self presentViewController:viewController animated:YES completion:nil]; 
     }); 
    }]; 
} else { 
    [self presentViewController:viewController animated:YES completion:nil]; 

} 
+0

нет работает, работает так же, как и мой код –

+0

, вы получили какое-либо предупреждение при представлении viewcontroller? –

+0

нет, не получил никакого Waring –

-1

Попробуйте следующий код:

RegistrationViewController * viewController = [[self.storyboard instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 

[self presentViewController:viewController animated:YES completion:nil]; 
+0

не работает, ведет себя так же, как мой код –

+0

Я думаю, что вы представляете тот же viewController, в котором вы уже находитесь. –

+0

нет, я в контроллере входа в систему, и я собираюсь настоящий регистрационный контроллер просмотра. –

3

Иногда ошибка происходит с основным циклом, попробуйте представить, что путь

RegistrationViewController *viewController = [[UIStoryboard storyboardWithName:@"Registration" bundle:nil] instantiateViewControllerWithIdentifier:@"RegistrationViewController"]; 

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self presentViewController:viewController animated:YES completion:nil]; 
}); 
+0

Это сработало для меня – Itzik984

0

попробовать viewDidAppear в

-(void)viewDidAppear:(BOOL)animated{ 
     [self presentViewController:viewController animated:YES completion:nil]; 
    } 
+1

Всегда вызывайте супер в таких методах. – Vive

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