我正在处理故事板,据我所知,我没有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