-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathAbstractViewController.m
138 lines (96 loc) · 3.72 KB
/
AbstractViewController.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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Copyright (C) 2012 LMIT Limited
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License 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 "AbstractViewController.h"
@implementation AbstractViewController
@synthesize tableView;
-(void)viewDidLoad{
[super viewDidLoad];
// if (_refreshHeaderView == nil) {
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, self.view.frame.size.width, self.tableView.bounds.size.height)];
view.delegate = self;
[self.tableView addSubview:view];
_refreshHeaderView = view;
[view release];
//}
[_refreshHeaderView refreshLastUpdatedDate];
if(!keepBackButton){
UIBarButtonItem* wallButton = [[UIBarButtonItem alloc] initWithTitle:nil style:UIBarButtonItemStyleBordered target:self action:@selector(onWallButtonClick:)];
[wallButton setImage:[UIImage imageNamed:@"more_icon"]];
[self.navigationItem setLeftBarButtonItem:wallButton];
[wallButton release];
}
loadedData = NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
-(IBAction)onWallButtonClick:(id)sender{
[hudsonObjectToReload stopLoad];
[self.navigationController popViewControllerAnimated:NO];
}
#pragma Deselect the eventually selected table row
- (void)viewWillAppear:(BOOL)animated
{
// Unselect the selected row if any
if(self.tableView!=nil){
NSIndexPath* selection = [self.tableView indexPathForSelectedRow];
if (selection){
[self.tableView deselectRowAtIndexPath:selection animated:YES];
}
}
}
#pragma mark -
#pragma mark Data Source Loading / Reloading Methods
- (void)reloadTableViewDataSource{
// should be calling your tableviews data source model to reload
// put here just for demo
if(!_reloading){
_reloading = YES;
loadedData = NO;
[hudsonObjectToReload loadHudsonObject];
}
}
- (void)doneLoadingTableViewData{
// model should call this when its done loading
if(_reloading){
_reloading = NO;
loadedData = YES;
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];
}
}
#pragma mark -
#pragma mark UIScrollViewDelegate Methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
}
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
[self reloadTableViewDataSource];
//[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
}
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
return _reloading; // should return if data source model is reloading
}
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
return [NSDate date]; // should return date data source was last changed
}
- (void)dealloc {
[_refreshHeaderView release];
[super dealloc];
}
@end