0

该应用程序。委托具有在应用程序启动时被调用的方法。痛苦是我的应用程序没有遵循 MVC,我必须在应用程序时将许多文本字段重置为空。发射(不关心第一次发射)。这些 txt 字段不是在应用程序委托中创建的,因此我无法在应用程序委托中设置它们(因为无法访问 txt 字段)。我怎么知道该应用程序已在新类中启动以重置字段。有没有类似的条件

if(application.HasAppLaunced)
{
}

请帮助

4

4 回答 4

1

您可以将您的视图控制器注册为事件的观察者

UIApplicationDidEnterBackgroundNotification

或者

UIApplicationWillEnterForegroundNotification

在您的视图控制器中的某处viewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(appEnteredBackground)
                                                name:UIApplicationDidEnterBackgroundNotification
                                               object:nil];

并添加此方法来重置您的字段,您可以在此处重置所有字段:

- (void)appEnteredBackground{
    [textField setText:@""];
}

不要忘记注销您的视图控制器,将其放在适当的位置:

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
于 2013-09-16T08:06:36.670 回答
0

我不完全明白你在问什么,但如果问题是如何检测她的应用程序处于活动状态,你可以使用以下条件:

[[UIAppication sharedApplication] applicationState] == UIAppicationStateActive 
于 2013-09-16T08:04:17.847 回答
0

尝试这个

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

// Reset your text fields here
}
于 2013-09-16T08:06:30.800 回答
0

试试这个..你可以调用一个方法来清空textfields使用NSNotificationCenter

您可以在AppDelegate.

 [[NSNotificationCenter defaultCenter]postNotificationName:@"EmptyFields" object:nil];

viewDidLoad您可以在方法中编写以下行。

 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(setEmpty) name:@"EmptyFields" object:nil];

你可以textfields用下面的方法做空。你可以把它写在你的ViewController.

- (void) setEmpty{
NSLog(@"Empty....");
}
于 2013-09-16T09:03:15.957 回答