簡體   English   中英

JSON請求后使用新數據刷新視圖控制器

[英]Refresh view controller with new data after JSON request

NSString * storyboardName = @"storyboardX";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"viewControllerX"];
[vc.view setNeedsDisplay];

我試圖在另一個線程中完成JSON請求后刷新視圖控制器中的顯示。 數據正確刷新,但視圖未刷新。 我在數據提取方法的末尾嘗試setNeedsDisplay,但它崩潰並超出NSRangeException索引0。 我認為這是因為上面的視圖控制器未正確實例化,或者當前視圖沒有被釋放。 ARC已打開。

我也嘗試過[vc.view viewDidLoad] ,結果相同。

上面的代碼位於(void)main JSON pull方法的末尾。

1)您的JSON Pull可能未在主線程中執行(我假設這是您未顯示的,如果不是,則從服務器獲取json,無論如何應該如此),並且GUI代碼可以在后台線程上被調用。

2)但是,無論如何,您都不應做任何嘗試,除非您確實確實想加載視圖控制器而不是刷新已加載的現有視圖控制器。 -您擁有的代碼將創建視圖控制器的全新實例,但是如果現在已經顯示了一個實例,則您將擁有同一視圖控制器的兩個重復實例。

您應該在視圖控制器中添加一個方法以重繪其內容。 然后,當JSON准備就緒時,觸發NSNotification。 讓您的視圖控制器偵聽通知,然后調用正在刷新視圖的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM