在没有.xib文件的情况下,请立即打开ViewController



我正在处理故事板,据我所知,我没有XIB文件。我想做的是:当应用程序启动时,我想检查过去是否写过任何内容,如果没有,则打开视图,这不是标准视图。(因为如果数据库不是空的,则应以标准视图打开其他视图。)

到目前为止我尝试过的内容:(在ViewDidload/ViewDidAppear中)

ViewController *vs = [Viewcontroller new];
[self presentViewController:vs animated:YES completion:nil];

这导致了黑屏。没有发生,它只是保持黑色。接下来,我尝试执行一个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)instantiateViewControllerWithIdentifier:(NSString *)identifier而不是调用instantiateInitialViewController

最新更新