Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用程序关闭后按钮保持隐藏状态_Ios_Xcode_Uibutton_Nsuserdefaults - Fatal编程技术网

Ios 应用程序关闭后按钮保持隐藏状态

Ios 应用程序关闭后按钮保持隐藏状态,ios,xcode,uibutton,nsuserdefaults,Ios,Xcode,Uibutton,Nsuserdefaults,当我的应用程序加载时,它充当安装程序。当您点击“安装”按钮时,应用程序将完成它的任务。它会安装所需的内容,然后您可以继续使用该应用程序。我的应用程序运行良好,但每当我关闭多任务条上的应用程序时,该应用程序就会再次像原始安装程序一样加载。因此,用户必须在每次再次加载应用程序时继续重新安装。我希望用户只需安装一次项目,就可以关闭应用程序,然后再次使用内容而无需重新下载。我知道我需要使用NSUserDefaults来实现这一点,但我也希望“安装”按钮随安装程序一起永久消失。注意,这不是一个商店。这只是

当我的应用程序加载时,它充当安装程序。当您点击“安装”按钮时,应用程序将完成它的任务。它会安装所需的内容,然后您可以继续使用该应用程序。我的应用程序运行良好,但每当我关闭多任务条上的应用程序时,该应用程序就会再次像原始安装程序一样加载。因此,用户必须在每次再次加载应用程序时继续重新安装。我希望用户只需安装一次项目,就可以关闭应用程序,然后再次使用内容而无需重新下载。我知道我需要使用NSUserDefaults来实现这一点,但我也希望“安装”按钮随安装程序一起永久消失。注意,这不是一个商店。这只是一个安装内容的测试应用程序,我可能会在以后使用它。我怎样才能做到这一切?感谢您的帮助。谢谢

实现过几次类似的东西后,最好在上面显示安装程序屏幕。然而,在某些情况下,用户并没有完全完成安装,应用程序不知何故成为背景或被杀。在这种情况下,您需要存储另一个变量来记录用户是否已完成安装


最简单的方法是,如果安装最初未完成,则将模态视图控制器作为一种向导显示,如果安装完成,则只需像往常一样加载主屏幕。

在安装之前只需查询用户默认值。如果出现未安装,则安装所需内容,然后设置用户默认值

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *isInstalled = [defaults objectForKey:@"installed"];
if( ![isInstalled isEqualToString: @"true"] ) {
    //do installation here

    NSString *hasUserInstalled = @"true";
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:hasUserInstalled forKey:@"installed"];
    [defaults synchronize];
}

也许最好用粗野的方式。。感觉更安全。尽管如此,仍然实现了相同的效果:)我确实知道您使用此方法的目的,但是安装方法太多,无法在“//do installation here”部分中全部调用它们。我有几个按钮,安装中存在的,需要离开与安装永久关闭后关闭应用程序。我该如何做才能让按钮保持隐藏,在应用程序被关闭后几乎隐藏安装程序?我只是将此作为一个有趣的测试应用程序,可能用于未来的实际应用程序,所以我不会将此副本提交给应用程序商店。它将处理这种检查默认值的方法。然而,这一切都将取决于您决定如何实现它。在您的情况下,我将执行相同的检查,但是检查相反的条件-如果isInstalled等于true,则执行myInstallerButton.hidden=YES。否则,按钮将保持可见,用户可以单击它!他不应该检测首次发射,而应该检测他提到的“安装”的完成情况。如果他总是强迫用户在第一次发布时安装,那么我猜大致相同……是的,我在帖子中提到了这一点。