2010-12-20 83 views
3

我有一個應用程序使用UITabBarController,並在每個選項卡中我有導航控制器。 我想讓其中一個視圖在另一個視圖中發生操作後重新加載,以便用戶返回該視圖時更新。 這可能嗎?iOS - 點擊標籤圖標時重新加載UIView?

非常感謝!

回答

8

完成此操作的最簡單方法是將加載代碼放入viewWillAppear:而不是viewDidLoad。雖然viewDidLoad可能只會被調用一次,當您的視圖初始化時,當您的視圖控制器即將被呈現時,無論是在標籤欄,導航控制器等中,都會調用viewWillAppear:,這會給您一個不錯的鉤子實現加載和佈局功能。

+0

是的,它工作正常:)謝謝很多! – Olsi 2010-12-21 11:53:28

+1

如果你已經在「標籤頁」並想刷新它 – 2011-12-19 07:56:33

0

謝謝。那完美的工作。任何人閱讀這裏是我的代碼。它的工作原理,但被警告,我是新來的iOS和objective-C所以警惕emptor。

- (void)viewWillAppear:(BOOL) animated 
{ 
    NSURL *imageURL = [NSURL URLWithString:@"http://www.domain.com/image.jpg"]; 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
     NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      // Update the UI 
      self.img.image = [UIImage imageWithData:imageData]; 
     }); 
    }); 
}