Как определить последнее действие, которое пользователь делал в iOS - PullRequest
0 голосов
/ 19 февраля 2019

ДАЕТ, что пользователь находится внутри приложения, И пользователь сворачивает приложение, когда пользователь открывает его снова, ТОГДА приложение не в последнем действии, которое выполнял пользователь.

Как я могу получить последнееактивность, которую делал пользователь?

1 Ответ

0 голосов
/ 22 февраля 2019

Вы хотите получить, какой ViewController пользователь заканчивает на

Делегировать методы, которые могут быть предоставлены через UIApplicationDelegate. Для реализации.

Реализация кода:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // yzh_findTod Mothod is a class static method that I'm extending on my UIViewController.
    UIViewController* lastActionViewController = [UIViewController yzh_findTopViewController];
    NSUserDefaults* userDefault = [NSUserDefaults standardUserDefaults];
    [userDefault setValue:lastActionViewController forKey:@"lastActionVC"];   
}

+ (UIViewController *)yzh_findTopViewController{

    UIViewController* currenViewController = [self yzh_rootViewController];
    BOOL runLoopFind = YES;
    while (runLoopFind) {
        if (currenViewController.presentedViewController) {
            currenViewController = currenViewController.presentedViewController;
        } else {
            if ([currenViewController isKindOfClass:[UINavigationController class]]) {
                currenViewController = [currenViewController.childViewControllers lastObject];
            } else if ([currenViewController isKindOfClass:[UITabBarController class]]) {
                UITabBarController* tabBarController = (UITabBarController* )currenViewController;
                currenViewController = tabBarController.selectedViewController;
            } else {
                if (currenViewController.childViewControllers.count > 0) {
                    currenViewController = [currenViewController.childViewControllers lastObject];
                } else {
                    return currenViewController;
                }
            }
        }
    }

    return currenViewController;
}

+ (UIViewController *)yzh_rootViewController{

    UIWindow* window = YZHAppWindow;
    return window.rootViewController;
}

Я надеюсь, что мой ответ поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...