1

当我调用下一个视图控制器时出现错误,我想调用一个视图控制器以继续执行操作。只有当我们第一次运行时,此屏幕才会第一次出现。控制器不会进入下一个视图。

-(void)viewDidLoad
{
    welcomePage *temp = [[welcomePage alloc]initWithNibName:@"welcomePage" bundle:nil];       
    [self presentViewController:temp animated:YES completion:^(void){}];

}

警告:尝试呈现不在窗口层次结构中的视图!

4

5 回答 5

0

此错误表示您试图从屏幕上尚未显示的视图中显示“欢迎页面”。

知道简单地将代码移动到 viewDidAppear 方法对您不起作用,您可以尝试这样做:

-(void)viewDidAppear
{
    [self presentWelcome];
}

- presentWelcome {
welcomePage *temp = [[welcomePage alloc]initWithNibName:@"welcomePage" bundle:nil];       
    [self presentViewController:temp animated:YES completion:^(void){}];
}

这里发生的是当视图出现时(所以当它在视图层次结构中时),控制器启动一个调用另一个视图控制器的函数。希望这可以解决您的问题。

希望这对你有帮助!

于 2013-09-10T08:05:36.537 回答
0

试试这个。。

您像这样更改 Appdelegate.m didFinishLaunchingWithOptions 方法中的代码

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:self.viewController];
self.window.rootViewController = nav;

在你的 ViewDidLoad 方法中像这样..

welcomePage *temp = [[welcomePage alloc]initWithNibName:@"welcomePage" bundle:nil];       
[self.navigationController presentViewController:temp animated:YES completion:nil];

要关闭视图控制器,您可以在 Welcomepage 按钮操作中编写以下代码

-(IBAction)dismiss:(id)sender{
[self dismissViewControllerAnimated:YES completion:nil];
}
于 2013-09-10T09:45:44.440 回答
0

该错误意味着您正在尝试从当前不在屏幕中的视图控制器呈现模态视图控制器。

于 2013-09-10T07:56:20.283 回答
0

使用此代码

-(void)viewDidLoad
{
    welcomePage *temp = [[welcomePage alloc]initWithNibName:@"welcomePage" bundle:nil];       
    [self presentViewController:temp animated:YES completion:nil];
}
于 2013-09-10T07:49:26.420 回答
0

如果您使用的是故事板:使用这个

instanceViewControllerWithIdentifier

    UIViewController objController  = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryBoard Id"];
 [self presentViewController:objController animated:YES completion:nil];

要设置 Storybaord ID,请在此处检查

于 2013-09-10T07:54:28.687 回答