DismissViewControllerAnimated无效

时间:2015-02-26 05:15:04

标签: ios objective-c iphone

如果通知收到移动到NotificationViewcontroller的通知,则使用本地推送通知,它不会移动main view controller。 我在这里使用代码:

- (void)applicationWillEnterForeground:(UIApplication *)application
 {

    if ([status isEqualToString:@"YES"])
    {
        NotificationViewcontroller *notify_view =[[NotificationViewcontroller alloc]init];
        [self.window.rootViewController presentViewController:notify_view animated:YES completion:nil];

当我使用此代码意味着它不应移动到NotificationViewcontroller我得到了errorr: ,其视图不在窗口层次结构中!`

   // self.window.rootViewController=notify_view;

我使用此代码移至NotificationViewcontroller。看到通知后,将一个后退按钮转到视图控制器

    NSLog(@"Go to some other view");


}
else
{
    [self.window.rootViewController dismissViewControllerAnimated:YES  completion:nil];
}

看到通知后,将一个后退按钮转到view controller后退按钮不起作用。

-(IBAction)back_btn:(id)sender
{
[self.window.rootViewController dismissViewControllerAnimated:YES  completion:nil];

}

1 个答案:

答案 0 :(得分:0)

  • 您正在将rootviewcontroller设置为NotificationViewcontroller,因此按下后退按钮会将rootviewcontroller更改为其他视图控制器。

  • 因为没有视图层次结构,所以要关闭视图控制器。

  • presentviewcontroller用于从现有的viewcontroller中打开新的viewcontroller,然后只有你可以解除你的presentviewcontroller,它将返回你的父视图控制器(例如)。