Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在不带.xib文件的viewDidLoad之后立即打开ViewController_Objective C_Xcode_Cocoa_Storyboard_Viewcontroller - Fatal编程技术网

Objective c 在不带.xib文件的viewDidLoad之后立即打开ViewController

Objective c 在不带.xib文件的viewDidLoad之后立即打开ViewController,objective-c,xcode,cocoa,storyboard,viewcontroller,Objective C,Xcode,Cocoa,Storyboard,Viewcontroller,据我所知,我正在使用故事板,因为我没有xib文件。我想做的是:当应用程序启动时,我想检查过去是否有任何东西被写入数据库,如果没有,打开一个不是标准视图的视图。(因为如果数据库不是空的,则应打开另一个视图,因为它是标准视图。) 到目前为止我所尝试的:(在viewDidLoad/viewDidAppear中) 这会导致黑屏。什么也没发生,只是一直是黑色的。 接下来,我尝试执行一个segue,但这会导致视图一次又一次地打开 是否有一种通用/标准的方法来做到这一点 多谢各位 在这种情况下,您可以从情节提

据我所知,我正在使用故事板,因为我没有xib文件。我想做的是:当应用程序启动时,我想检查过去是否有任何东西被写入数据库,如果没有,打开一个不是标准视图的视图。(因为如果数据库不是空的,则应打开另一个视图,因为它是标准视图。)

到目前为止我所尝试的:(在viewDidLoad/viewDidAppear中)

这会导致黑屏。什么也没发生,只是一直是黑色的。 接下来,我尝试执行一个segue,但这会导致视图一次又一次地打开

是否有一种通用/标准的方法来做到这一点


多谢各位

在这种情况下,您可以从情节提要实例实例化UIViewController实例:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil];
UIViewController *newController = [storyboard instantiateInitialViewController];
这假设您将从该故事板实例中的初始视图控制器开始

您可以将其与条件匹配以执行以下操作:

UIViewController *newViewController = nil;
if([self databaseHasNewInformation])
{

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NewDataStoryboard" bundle:nil];
    newController = [storyboard instantiateInitialViewController];
}
else
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NoNewDataStoryboard" bundle:nil];
    newController = [storyboard instantiateInitialViewController];
}

// Present New View Controller (this example assumes a navigation controller)
[self.navigationController pushViewController:newController animated:YES];

如果你想实例化一个不是故事板中初始视图控制器的视图控制器,你可以考虑利用另一个实例-
(id)instantialeviewcontrollerwhithidentifier:(NSString*)identifier
,而不是调用
instantialeviewcontroller

非常感谢你的帮助!
UIViewController *newViewController = nil;
if([self databaseHasNewInformation])
{

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NewDataStoryboard" bundle:nil];
    newController = [storyboard instantiateInitialViewController];
}
else
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NoNewDataStoryboard" bundle:nil];
    newController = [storyboard instantiateInitialViewController];
}

// Present New View Controller (this example assumes a navigation controller)
[self.navigationController pushViewController:newController animated:YES];