计算一个 View Controller 和另一个 View Controller 的切换之间的时间

Calculate the time between the switches of a View Controller and another View Controller

我创建了显示内部 activity 指示器的 UIView class。此视图通知您当时应用程序正在执行操作。

我正在尝试应用此 UIView 并在我的应用程序中登录,但我遇到了问题...

我希望能够计算应用程序从用户输入用户名和密码到访问应用程序主屏幕所花费的时间。在那一刻我会看到我的 UIView 通知你他正在做手术......

新视图控制器一出现,自定义 UIView 就会消失...

为此,我想到了一个 NSTimer,也许在我的 UIView class 中有一个特定的方法,但我不知道如何将计时器设置为 return 切换之间的正确时间一个视图控制器和另一个 ..

有人可以帮我吗?

如果我的理解是正确的,你想设置一个计时器那么你想在不同的视图控制器中显示执行时间?

我会创建一个带有 nsdate 对象的单例,我会将该 nsdate 对象设置为当前时间,然后在用户完成他正在做的任何事情后,我会创建另一个 nsdate 对象并比较经过的时间。

所以创建一个 objective-c class,我创建了一个叫做 showtimer 的东西 .h 文件

//
//  ShowTimer.h
//  app
//

#import <Foundation/Foundation.h>

@interface ShowTimer : NSObject
{
    NSDate *passed;
}

@property (nonatomic, retain) NSDate *passed;
+ (id)sharedManager;
@end

.m 文件

//
//  ShowTimer.m
//  app
//

#import "ShowTimer.h"

@implementation ShowTimer
@synthesize passed;

#pragma mark Singleton Methods

+ (id)sharedManager {
    static ShowTimer *sharedMyManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedMyManager = [[self alloc] init];
    });
    return sharedMyManager;
}

- (id)init {
    if (self = [super init]) {

    }
    return self;
}

- (void)dealloc {
    // Should never be called, but just here for clarity really.
}
@end

在您的视图控制器中导入 #import "ShowTimer.h" 然后在任何地方初始化定时器

ShowTimer *timer=[ShowTimer sharedManager];
    timer.passed=[NSDate date];

然后用另一个 view/viewcontroller 方法调用它

ShowTimer *timer=[ShowTimer sharedManager];
    NSDate *methodFinish = [NSDate date];
    NSTimeInterval executionTime = [methodFinish timeIntervalSinceDate:timer.passed];
    NSLog(@"Execution Time: %f", executionTime);