Objective c iOS6]在加载和显示当前视图之前跳转到另一个视图

Objective c iOS6]在加载和显示当前视图之前跳转到另一个视图,objective-c,ios,uiviewcontroller,ios6,Objective C,Ios,Uiviewcontroller,Ios6,这就是我的软件应该如何运行 我有一个协议viewcontroller,它将在运行软件之前显示并询问用户是否同意我们的策略。一旦用户通过按下“同意”按钮表示同意,该按钮将消失,不再向他们显示 问题是,在加载视图之前,我必须检查他们之前是否同意,并决定程序是否可以跳过协议页。。。我不知道该在哪里做 viewDidLoad()肯定不是一个,因为它是在加载视图后按字面意思调用的。我试过使用InWithCoder()但没有成功。我尝试了didfinishlaunchingwithoptions(),但似乎

这就是我的软件应该如何运行

我有一个协议viewcontroller,它将在运行软件之前显示并询问用户是否同意我们的策略。一旦用户通过按下“同意”按钮表示同意,该按钮将消失,不再向他们显示

问题是,在加载视图之前,我必须检查他们之前是否同意,并决定程序是否可以跳过协议页。。。我不知道该在哪里做

viewDidLoad()肯定不是一个,因为它是在加载视图后按字面意思调用的。我试过使用InWithCoder()但没有成功。我尝试了didfinishlaunchingwithoptions(),但似乎故事板并没有将其命名为:(

对我有什么建议吗


在等待您的建议时,我将在iOS开发者库中挖掘。谢谢!

您应该做的是记录他们在NSUserDefaults中单击页面的事实。从下一次开始,检查NSUserDefaults,如果它存在于其中,则不显示页面

一些示例代码,您可以放入应用程序委托或视图控制器逻辑中

if([[NSUserDefaults standardUserDefaults] valueForKey:@"visited"]){
    NSLog(@"Second time visitor");
}else{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"visited"];
    NSLog(@"First time visitor");
}

[[NSUserDefaults standardUserDefaults] synchronize];

您可以在AppDelegate.m中选择视图控制器。 检查存储在NSUserDefaults中的值后,请尝试此操作:


嗯,这仍然给了我同样的问题-我应该在哪里阻止协议页面显示?在viewDidLoad中?您的协议页面本身是一个视图控制器吗?如果是,那么显然必须将此逻辑放在视图控制器推到导航控制器上的位置。其他方面,如果是视图,则此逻辑c可以放在你添加视图的地方作为子视图。如果没有额外的代码说明你在哪里做,很难回答我在那里看到了这个概念:)我会尝试一下。非常感谢。