[英]IOS: Code to present login screen modally
我想用登錄屏幕(和首次使用的加入屏幕)對應用程序進行密碼保護。 SO上的一些答案建議測試用戶是否以初始屏幕的外觀出現在viewdid中,如果沒有登錄則以模態方式顯示登錄屏幕。
我試過了,但是代碼不起作用。 有人知道用於呈現模態視圖控制器的最新代碼嗎? 注意我在情節提要中創建了登錄屏幕,並為其指定了情節提要ID“ login”。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//if not logged in, modally present login screen here.
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"loggedIn"]) {
// go to login screen
NSLog(@"not logged in");//this fires so logic is ok
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"login"];//this line gives warning it is not being used
} else {
// go to main screen
}
}
/*perhaps I should call this somewhere?
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
*/
感謝@rdelmar的評論,您必須具有presentViewController:animated:completion: (presentModalViewController:animated:
該ivc。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//if not logged in, modally present login screen here.
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"loggedIn"]) {
// go to login screen
NSLog(@"not logged in");//this fires so logic is ok
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"login"];//LOOK AT NEXT LINE
[self presentViewController:ivc animated:YES completion:nil]; //THIS LINE IS MISSING.
} else {
// go to main screen
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.