应用启动时的操作

时间:2011-10-29 09:57:07

标签: iphone objective-c ios xcode

我希望每次我的应用程序启动时(甚至可能从后台恢复)它都会执行操作(例如TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];)。 我也希望这个动作(在启动时)可以通过应用程序的设置包中的开关禁用。我该怎么办?谢谢你的关注。

P.S。如果我使用了错误的单词,我会道歉..我是初学者:)

3 个答案:

答案 0 :(得分:2)

您可以在应用程序委托中实现几种方法,这些方法在UIApplicationDelegate协议中可用。

首次启动您的应用时,会调用applicationDidFinishLaunching

当您的应用从后台恢复时,applicationWillEnterForeground会被调用。

您添加到设置包中的开关将有一个与之关联的密钥NSString。交换机在该密钥下的标准NSNumber中存储编码为NSUserDefaults的布尔值。您可以从标准用户默认值中读取布尔值,并使用它来确定是否执行操作。

有关如何添加设置包的Apples文档是here。 在您的设置包中,您需要一个切换开关。您将在标准用户默认值中查找的密钥由Key字段指定。切换开关的默认值由DefaultValue字段指定。 See here

以下是您在applicationDidFinishLaunching方法

中需要执行的操作
static NSString *const kTakeActionOnLaunchSettingKey = @"Key";

- (void)applicationDidFinishLaunching
{
  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
  BOOL doTakeActionOnLaunch = [userDefaults boolForKey:kTakeActionOnLaunchSettingKey];
  if (doTakeActionOnLaunch) {
    // Do something
  }
}

答案 1 :(得分:1)

在voidDidLoad {}方法中初始化它。要禁用它,您可以使用对象库中的切换

答案 2 :(得分:1)

这很简单,我用它来实现从初始屏幕到主页的酷转换。 您需要将代码放在AppDelegate m文件中。

使用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

在启动时运行代码。

使用以下方法管理Backgroud< - >前景过渡:

- (void)applicationWillResignActive:(UIApplication *)application 
- (void)applicationDidEnterBackground:(UIApplication *)application 
- (void)applicationWillEnterForeground:(UIApplication *)application 
- (void)applicationDidBecomeActive:(UIApplication *)application 

希望这会对你有所帮助。