繁体   English   中英

用户从App Store更新iOS应用程序时,运行一组快速过程

[英]Run a quick set of procedures when a user updates an iOS app from the App Store

我在App Store中有一个应用程序。 我正在更改新版本(1.2.0),并且当用户在App Store中更新应用程序时,我希望该应用程序运行一组教程。 运行教程不是问题。 问题是AppDelegate中是否有方法或仅在用户更新后首次运行应用程序时才运行的方法?

我已经看到过这样的问题iOS:一次调用一个方法,该方法指向NSUserDefaults的使用,这很好,但是我将如何针对特定的版本号进行部署?

简而言之,我想运行一些代码,声明“如果用户运行<1.2.0并更新到1.2.0,请运行此代码,否则,忽略”。 以相同的方式更新应用程序时,有几个屏幕仅显示第一次。

抱歉,这是通用的,但是我不确定我将在哪里运行此代码。 我的情节提要中将初始根视图控制器设置为“标签栏控制器”。 我可以在用户运行应用程序时显示的第一个表格视图中设置此设置吗? 如果是这样,我将如何去做类似的事情?

更新:在我的AppDelegate didFinishLaunching中,我输入了以下代码:

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSLog(@"Version is %@", version); 

[[NSUserDefaults standardUserDefaults] setObject:version forKey:@"CFBundleShortVersionString"];
[[NSUserDefaults standardUserDefaults] synchronize];

在我的时间轴表视图(被调用的第一个视图)的viewDidLoad中,我输入:

self.appVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"CFBundleShortVersionString"];


if ([self.appVersion isEqualToString:@"1.2.0"])
{
    if ([TutorialViewController hasSeenTutorial] == NO)
    {
        NSArray *tutorialImages = [[NSArray alloc] init];
        tutorialImages = @[[UIImage imageNamed:@"TimelineTut.png"],
                           [UIImage imageNamed:@"Tut 1.png"],
                           [UIImage imageNamed:@"Tutty 2.png"],
                           [UIImage imageNamed:@"newtut3.png"],
                           [UIImage imageNamed:@"newnewtut4colors.png"],
                           [UIImage imageNamed:@"newtut5.png"],
                           [UIImage imageNamed:@"tut 6.png"]];
        TutorialViewController *tutorial = [[TutorialViewController alloc] initWithImages:tutorialImages];
        [self presentViewController:tutorial animated:YES completion:nil];
        [TutorialViewController setHasSeenTutorial:YES];

    }

}

但是,当我从1.1.0更新到1.2.0时,它不会播放本教程。

任何指导都将非常有用。

谢谢,

您可以通过获取应用程序的版本号

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

将其保存为用户默认设置,并且在更新应用程序时,它可以从用户默认设置中读取上次安装的版本并做出正确的反应。

您可以使用NSUserDefaults来检查该版本是否已首次运行该应用程序,然后执行教程代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM