1

ストーリー ボードとナビゲーション コントローラーを備えたアプリがあり、ユーザーが初めてアプリを起動したときに同意ビューをポップアップ表示したいのですが、

Appdelegate.m で

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //app launched first time
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setBool:YES forKey:@"firstTime"];
    BOOL firstTime = [prefs boolForKey:@"firstTime"];
    NSLog(@"firstTime %c",firstTime);

     //check if user has agreed agreement or not
    if ( firstTime==YES) {

        //replace and push rootview manually
        UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard;

        UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"];

        [self.window.rootViewController presentModalViewController:loginController animated:YES];

    return NO;
    }else

     return YES;
}

Nslog初めて を取得しましたが、reverse question mark signはいにもいいえにも設定されていないと思います

では、ブール値を設定して iOS デバイスに保存し、アプリが起動するたびに呼び出すにはどうすればよいでしょうか。

4

2 に答える 2

3

NSUserDefaultsメソッドregisterDefaultsを使用する必要があります。このメソッドを使用すると、デフォルトの値(この場合はYES)を設定できます。これは、ユーザーが値を変更していない場合にのみ使用されます。ユーザーが値をNOに変更すると、登録されているデフォルトは無効になります。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstTime", nil];
BOOL firstTime = [prefs boolForKey:@"firstTime"];
 //check if user has agreed agreement or not
if ( firstTime==YES) { .....

次に、後でユーザーが必要な操作を行ったときに、通常の方法でキーの値「firstTime」をNOに設定します。

于 2012-09-21T15:41:16.947 に答える
3

ログステートメントでに変更%cします%i

于 2012-09-21T15:39:34.440 に答える