Server request からの応答として特定の時間間隔が受信された後にタブビューを変更するという私の質問を参照して、次のコードを使用して、アプリケーションがアクティブ状態になったときにセッションタイムアウトメッセージを表示しました
AppDelegate.m のメソッド:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// to check the session
XTabViewController *XTabViewCon = [[XTabViewController alloc] init];
[XTabViewCon pushViewUponCheckedSession];
[XTabViewCon release];
}
XTabViewController.m のメソッド
- (void)pushViewUponCheckedSession {
//THIS IS VERY IMPORTANT. IT CHECKS FOR SESSION
if ([[[ApplicationContext alloc] dataManager ] checkSession]) {
[self showSessionAliveView];
//here I can write something that will push a view that was seen last before leaving app to inactive state. May be NSNotification could help me
}
else {
[self showSessionTimeOutView];
}
}
- (void)showSessionTimeOutView {
//show activity indi
waitingIndicator = [[MyWaitingIndicator alloc]init];
[self.view addSubview:waitingIndicator];
[waitingIndicator setHidden:YES];
[waitingIndicator stopAnimating];
//push session timeout view
SessionTimeOutViewController *sessionTimeOutView = [[SessionTimeOutViewController alloc] init];
[[self navigationController] pushViewController:sessionTimeOutView animated:NO];
[sessionTimeOutView release];
[waitingIndicator release];
}
- (void)showSessionAliveView {
SessionAliveView *sessionAliveViewList = [[SessionAliveView alloc] init];
[[self navigationController] pushViewController:sessionAliveViewList animated:YES];
[sessionAliveViewList release];
}
私の質問は:
It( pushViewUponCheckedSession
) は、タブを切り替えてセッションの有効期限が切れているかどうかを確認するときに使用すると正常に動作します。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
//if X Tab is selected then & only then call this method
if (tabBarController.selectedIndex == 2) {
[XTabViewCon pushViewUponCheckedSession];
}
}
しかし、checkedSession で SessionTimeOutViewController のビューを表示できません 。アプリがアクティブな状態になったら、以前のビューをフラッシュするようなことをする必要がありますか。次に、セッションをチェックして、適切なビューを設定します。
前もって感謝します