デリゲートからモーダルビューを作成して、アプリケーションが初めて起動したときにモーダルビューを表示し、ユーザーに重要なことを通知するために、却下ボタンを表示するにはどうすればよいですか?
アプリケーションが最初に起動されたときだけ表示され、二度と表示されないビューが必要です。
デリゲートからモーダルビューを作成して、アプリケーションが初めて起動したときにモーダルビューを表示し、ユーザーに重要なことを通知するために、却下ボタンを表示するにはどうすればよいですか?
アプリケーションが最初に起動されたときだけ表示され、二度と表示されないビューが必要です。
最初に:ここで私の以前の答えをチェックしてください:https ://stackoverflow.com/a/13563490/1359306
これは、アプリを開くたびに使用するパスワード保護モーダルビュー用です。答えは、ソリューションを実装するときに発生する可能性のあるいくつかの問題に役立つはずです。performSegueWithIdentifier
ストーリーボードを使用しているので使用しますが、ビューを表示するために使用presentViewController:animated:completion:
することもできます。
次に:if
ビューを表示する必要があるかどうかを確認するために使用できるステートメントがあることに注意してください。私の場合、ユーザーが5分以上アプリを使用していないかどうかを確認します。NSUserDefaults
これを行うには、呼び出されるたびに日付を設定し、それとapplicationWillResignActive
現在の日付/時刻の違いを確認します)。
あなたの場合、あなたは次のようなことをすることができます:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"firsttime"] == nil) {
//display modal view
[defaults setObject:@"YES" forKey:@"firsttime"];
[defaults synchronize];
}
NSUserDefaults
これにより、アプリのがチェックされます。'firsttime'がnil(アプリが最初にダウンロードされたとき)の場合、ビューが表示されます。次に、キーを「YES」に設定します。これは、キーが再びnilに等しくなることはないため、ビューが表示されないことを意味します。
これは、アプリが最初に読み込まれたときに指示を表示するのに役立ちます。または、日付または数値を保存して、将来的にコードをより適応性のあるものにすることもできます。
のドキュメントはNSUserDefaults
ここにあります。
を使用してこれを達成できますNSUserDefaults
。
デリゲート.hファイル内
NSString * firstTime;
.mファイル内
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *myStr = [defaults objectForKey:@"str"];
firstTime =myStr;
if (firstTime.length==0) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"hi" message:@"You have open this app first time" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
[alert show];
[self firstTime];
}
return YES;
}
-(void)firstTime
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *myStr = @"first";
[defaults setObject:myStr forKey:@"str"];
[defaults synchronize];
}
AppDelegate
usingメソッドでdidFinishLaunchingWithOptions
、アプリケーションがこのように1回目または2回目に起動するかどうかを確認します
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstTime"])
{
// show your main view controller
}
else
{ // your app is launching first time ....
// show your modalview controller here and dismiss it & go to main view controller
// don't forget to update the key so that next time user don't hang in else statement...
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstTime"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
presentViewController:animated:completion:
UIViewControllerクラスでを使用できます。
だからここに私がすることです:
ソースもコードもありません(私のMacは家にあります)が、これらの簡単な手順に従うと、問題なく動作するはずです。