ContainerBanner/ContainerBanner/TextViewController.m

/*
Copyright (C) 2015 Apple Inc. All Rights Reserved.
See LICENSE.txt for this sample’s licensing information
 
Abstract:
A simple view controller that manages a content view
*/
 
#import "TextViewController.h"
#import "BannerViewController.h"
 
 
@interface TextViewController ()
 
@property (nonatomic, weak) IBOutlet UITextView *textView;
@property (nonatomic, weak) IBOutlet UILabel *timerLabel;
@property (nonatomic, strong) NSTimer *timer;
@property (nonatomic, assign) CFTimeInterval ticks;
 
@end
 
#pragma mark -
 
@implementation TextViewController
 
- (instancetype)init {
    self = [super initWithNibName:@"TextViewController" bundle:nil];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willBeginBannerViewActionNotification:) name:BannerViewActionWillBegin object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishBannerViewActionNotification:) name:BannerViewActionDidFinish object:nil];
    }
    return self;
}
 
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:BannerViewActionWillBegin object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:BannerViewActionDidFinish object:nil];
}
 
- (void)setText:(NSString *)text {
    _text = [text copy];
    self.textView.text = text;
}
 
- (void)startTimer {
    if (self.timer == nil) {
        self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timerTick:) userInfo:nil repeats:YES];
    }
}
 
- (void)stopTimer {
    [self.timer invalidate];
    self.timer = nil;
}
 
- (void)timerTick:(NSTimer *)timer {
    // Timers are not guaranteed to tick at the nominal rate specified, so this isn't technically accurate.
    // However, this is just an example to demonstrate how to stop some ongoing activity, so we can live with that inaccuracy.
    self.ticks += 0.1;
    double seconds = fmod(self.ticks, 60.0);
    double minutes = fmod(trunc(self.ticks / 60.0), 60.0);
    double hours = trunc(self.ticks / 3600.0);
    self.timerLabel.text = [NSString stringWithFormat:@"%02.0f:%02.0f:%04.1f", hours, minutes, seconds];
}
 
- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSDictionary *ipsums = [NSDictionary dictionaryWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"ipsums" withExtension:@"plist"]];
    
    self.text = ipsums[@"Original"];
    self.textView.text = self.text;
}
 
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self startTimer];
}
 
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [self stopTimer];
}
 
- (void)willBeginBannerViewActionNotification:(NSNotification *)notification {
    [self stopTimer];
}
 
- (void)didFinishBannerViewActionNotification:(NSNotification *)notification {
    [self startTimer];
}
 
 
@end