-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathNotificationsViewController.m
123 lines (107 loc) · 4.35 KB
/
NotificationsViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* * Copyright 2014-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#import "NotificationsViewController.h"
#import "PopOverViewController.h"
#import "ModalViewController.h"
/**
* View notification controller
*/
@interface NotificationsViewController ()
@property UIButton *popOverButton;
@property UIButton *alertButton;
@property UIButton *modalButton;
@end
static NSString* const POP_OVER_BUTTON_TITLE = @"Pop-Over";
static NSString* const ALERT_BUTTON_TITLE = @"Alert";
static NSString* const MODAL_BUTTON_TITLE = @"Modal";
static NSString* const ALERT_TITLE = @"Alert";
static NSString* const ALERT_CONTENT = @"This is an alert";
static NSString* const ALERT_CANCEL_BUTTON = @"OK";
@implementation NotificationsViewController
#pragma mark - Controller Methods
- (void)viewDidLoad {
[super viewDidLoad];
[self setUpView];
}
/**
* Creates and configures view
*/
-(void)setUpView{
CGSize buttonSize = [self getSmallSquareSize];
CGFloat gapBetweenButtons = [self getSmallHeightPadding];
CGPoint firstButtonPoint = CGPointMake(0, [self getTopPositionRounded] + [self getLargeHeightPadding]);
//initialize
_modalButton = [[UIButton alloc] initWithFrame:[self frameFromCGPoint:firstButtonPoint AndCGSize:buttonSize]];
_alertButton = [[UIButton alloc] initWithFrame:[self frameFromCGPoint:CGPointZero AndCGSize:buttonSize]];
_popOverButton = [[UIButton alloc] initWithFrame:[self frameFromCGPoint:CGPointZero AndCGSize:buttonSize]];
//position buttons
[self centerViewByWidth:_modalButton];
[self centerViewByWidth:_alertButton];
[self centerViewByWidth:_popOverButton];
[self putView:_alertButton belowView:_modalButton withPadding:gapBetweenButtons];
[self putView:_popOverButton belowView:_alertButton withPadding:gapBetweenButtons];
[self configureButton:_modalButton withEvent:@selector(modalButtonPressed:) andTitle:MODAL_BUTTON_TITLE];
[self configureButton:_alertButton withEvent:@selector(alertButtonPressed:) andTitle:ALERT_BUTTON_TITLE];
[self configureButton:_popOverButton withEvent:@selector(popOverButtonPressed:) andTitle:POP_OVER_BUTTON_TITLE];
[self.view addSubview:_alertButton];
[self.view addSubview:_modalButton];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[self.view addSubview:_popOverButton];
}
}
#pragma mark - Button Configuration
/**
* Configures button
*
* @param button the button
* @param event buttons action
* @param title button title
*/
-(void)configureButton:(UIButton*)button withEvent:(SEL)event andTitle:(NSString*)title{
button.backgroundColor = [UIColor flatDarkBlue];
button.titleLabel.font = [UIFont mediumFont];
[button setTitle:title forState:UIControlStateNormal];
[button addTarget:self action:event forControlEvents:UIControlEventTouchUpInside];
}
#pragma mark - Button Events
/**
* Creates a popover
*
* @param sender popover button
*/
-(void)popOverButtonPressed:(UIButton*)sender{
PopOverViewController *content = [[PopOverViewController alloc] init];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:content];
[popover setPopoverContentSize:[self getLargeSquareSize] animated:YES];
[popover presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
/**
* Creates alert
*
* @param sender alert button
*/
-(void)alertButtonPressed:(id)sender{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:ALERT_TITLE message:ALERT_CONTENT delegate:nil cancelButtonTitle:ALERT_CANCEL_BUTTON otherButtonTitles:nil];
[alert show];
}
/**
* Creates modal
*
* @param sender modal button
*/
-(void)modalButtonPressed:(id)sender{
ModalViewController *modal = [[ModalViewController alloc] init];
[self presentViewController:modal animated:YES completion:nil];
}
@end