某些视图在首次启动时打开

时间:2014-05-24 17:43:03

标签: ios objective-c uiviewcontroller nsuserdefaults

我希望如果您第一次启动应用,则会打开某个UIView。但是,如果您launch稍后UIView,则- (void)viewDidLoad { [super viewDidLoad]; if ( ![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) { //View opens [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"]; [[NSUserDefaults standardUserDefaults] synchronize]; } else { //RootView opens } // Do any additional setup after loading the view, typically from a nib. } 应该无法看到。

我该如何编程?

我使用Storyboard,我已经在Storyboard中设置了我的视图。

以下是我已编码的内容:

{{1}}

那么我可以在 //查看打开哪些内容并打开 // RootView ? 非常感谢你!

2 个答案:

答案 0 :(得分:0)

您已准备好所有内容,只需显示您想要的特定UIView即可。也许你已经在另一个类中创建了它,然后将其初始化并将其添加到主视图中,也许就像这样。

MyUIViewExtension *viewExt = [MyUIViewExtension alloc] initWithFrame:....];
// add some other properties
[self.view addSubview:viewExt];

但是由你来决定UIView会以哪种方式出现。


要从UIView添加UIStoryboard,您已设置了标识符。我更喜欢使用UIViewController名称:

enter image description here

在课堂内插入以下代码行:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" 
                                                     bundle:nil];
NSString *strVC = [NSString stringWithFormat:@"%@", [ViewController class]];
ViewController *viewController = 
  [storyboard instantiateViewControllerWithIdentifier:strVC];

当然最好将ViewController创建为Class变量,以便在创建后使用它。

答案 1 :(得分:0)

取决于你真正的目标。如果您只想在当前视图控制器的常规视图中添加视图,则可以按照建议添加视图,或者只是取消隐藏它,否则将其隐藏。 您可以在Interface Builder(相应的Storyboard Editor)中默认隐藏它,也可以将其隐藏在else分支中。

或者您可以呈现视图控制器。您可以通过编程方式将segue映射到故事板中定义(并以id命名)的segue,或者您可以使用导航控制器呈现它 - 如果您有 - 或者您可以以模态方式呈现它。无论您是否有导航控制器,模态演示都有效。模态演示不需要覆盖整个屏幕,但它可能会做。

所以 - 这取决于。

不要指望一些非常合理的代码 - 在你的问题的背景下是合理的 - 直到你揭示你喜欢的或至少它应该是什么样子。