我的根視圖是PSCollectionView
(https://github.com/ptshih/PSCollectionView)。 在這個類中,我有從我的Web服務加載數據的方法loadDataSource
。更改ViewControllers時loadDataSource問題
-(void)loadDataSource {
NSLog(@"Load data source");
NSMutableArray *mainListings = [Utils getPosts:selectedCategory begin:@"0" date:@"0"];
self.waterflowViewData = mainListings;
[self.waterflowView.pullToRefreshView stopAnimating]; //This is when i use pull to refresh to call it.
}
這種方法被稱爲在rootView
的viewDidLoad
這樣
[self loadDataSource];
而在pullToRefresh
方法這樣
__weak ViewController *weakSelf = self;
[weakSelf loadDataSource];
我的問題是,當我使用self.navigationController
這個推ViewController
正在調用方法loadDataSource
。它只在我搜索的這兩個地方被調用。即使當我從第四個ViewController
回到第三個ViewController
'loadDataSource'被調用(我檢查NSLog)。爲什麼發生這種情況會導致應用程序變得更慢,同時也會利用Web服務資源。
這是我推我所有的ViewControllers
-(void) addButtonClickEvent:(id) sender{
LoginViewController *loginView = [[LoginViewController alloc]init];
[self.navigationController pushViewController:loginView animated:YES];
}
如果你在調用loadDataSource(viewDidLoad和pullToRefresh)的哪個地方調用它的兩個地方之前粘貼一個NSLog?具體來說,當你彈出視圖控制器時,哪一個正在調用它? – CharlesA
我只是想它,它來自viewDidLoad,我也試圖從那裏刪除它,並把它放在'viewWillAppear'和'viewDidAppear'發生過同樣的事情。 – Elgert
viewDidLoad只會在VC第一次加載時被調用。當你將第四視圖控制器彈回到第三視圖控制器時,它不會被調用。如果你在彈出一個VC時顯示viewDidLoad,那麼你的VC推/推邏輯有問題 - 我會去看看 – CharlesA