2015-01-16 38 views
0

我的窗口的一半是UITableView和其他是PageViewController斯威夫特:刷新UIImageView圖片

在我PageViewController,我有兩個特性:

@IBOutlet weak var displayImageView: UIImageView! 
var displayImage : UIImage? 

PageViewController viewDidLoad我分配:

override func viewDidLoad() { 
     super.viewDidLoad() 
     self.displayImageView.image = self.displayImage 
    } 

displayImageViewStoryboard連接到我的場景中的outlet。由於User點擊不同的單元格,我希望displayImageView中的圖像發生變化。

在我parentViewController顯示的tableViewPageViewController,我叫下面的方法在我didSelectRowAtIndexPath

func getDisplayImageForSelectedRow() { 
    var row = self.tableView.indexPathForSelectedRow()?.row 
    //DisplayImageVC is a contentViewController that is loaded by pageViewController 
    var displayImageVC = self._pageContent[1] as DisplayImageVC 
    displayImageVC.displayImage = self._displayImage[row!] as UIImage 
    println(displayImageVC.displayImage) 
    if (self.isPageViewVisible){ 
     displayImageVC.displayImageView.reloadInputViews() 
     displayImageVC.displayImageView.setNeedsDisplay() 
    } 
} 

這裏日誌從println()

You selected cell #0 
Optional(<UIImage: 0x7c21c2e0>) 
You selected cell #1 
Optional(<UIImage: 0x7c21c5a0>) 
You selected cell #2 
Optional(<UIImage: 0x7c21cd00>) 
You selected cell #3 
Optional(<UIImage: 0x7c21cff0>) 
You selected cell #4 
Optional(<UIImage: 0x7c21d2d0>) 

基於日誌,我相信正在分配新圖像;然而,UIImageView插座繼續顯示第一次加載pageViewController時加載的相同圖像。

正如你可以在代碼中已經注意到了,我試圖下面幾行代碼來獲取的UIImageView刷新,但無濟於事:

displayImageVC.displayImageView.reloadInputViews() 
displayImageVC.displayImageView.setNeedsDisplay() 

我怎樣才能獲得UIImageView展現新形象那是加載?

+0

displayImage.image = ... 輕微混淆,我認爲。 –

+0

displayImage是一個UIImage。 – user1107173

回答

1

getDisplayImageForSelectedRow你只更新UIImage的,你也應該像分配給視圖:

func getDisplayImageForSelectedRow() { 
    .. 
    displayImageVC.displayImage = self._displayImage[row!] as UIImage 
    displayImageVC.displayImageView.image = displayImageVC.displayImage <--THIS 
    .. 
} 
+0

事實上,這造成了崩潰的B/C我不認爲你應該從另一個類設置IBOutlet屬性。但是,我在孩子中創建了一個方法,並調用:'func referhUIImageView(){self.planImageView.image = self.planImage } ' – user1107173

+0

很高興它有幫助,但崩潰肯定有不同的原因(即,不事實上,我們正在設置另一個班級的出口,一個出口只是一個以給定方式初始化的屬性,沒有別的,沒有什麼) – sergio