0

アプリ。デリゲートには、アプリの起動時に呼び出されるメソッドがあります。痛みは、アプリが MVC に従っていないことです。アプリを起動するときに、多くのテキスト フィールドを空にリセットする必要があります。起動します(最初の起動は関係ありません)。これらのtxtフィールドはアプリデリゲートで作成されていないため、アプリデリゲートで設定できません(txtフィールドにアクセスできないため)。フィールドをリセットするためにアプリが新しいクラスで起動されたことをどのように知ることができますか。のような条件はありますか

if(application.HasAppLaunced)
{
}

親切に助けて

4

4 に答える 4

1

ビューコントローラーをイベントのオブザーバーとして登録できます

UIApplicationDidEnterBackgroundNotification

また

UIApplicationWillEnterForegroundNotification

あなたのView ControllerのどこかにviewDidLoad

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

このメソッドを追加してフィールドをリセットすると、ここですべてのフィールドをリセットできます。

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

View Controller の登録を解除することを忘れないでください。これを適切な場所に置きます。

[[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

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 に答える
0

これを試して

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

// Reset your text fields here
}
于 2013-09-16T08:06:30.800 に答える