2014-10-29 56 views
0

當用戶選擇從UITableViewController一個UITableCell一個節目賽格瑞朝執行UINavigationController轉發模式的UIView

import UIKit 

class ItemNavigationController: UINavigationController { 

    // this is our "model" - its value is set by the "prepareForSegue" method of the parent UITableViewController 
    var item: String? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // here I want to "forward" the "model" to the ItemViewController 
     // self.someMethodToGetItemViewController.item = item 
    } 

} 

當我們的模型被設置在ItemViewController我們「刷新」標籤:

import UIKit 

class ItemViewController: UIViewController { 

    var item: String! 

    @IBOutlet 
    weak var nameLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // does not do anything because item is empty... 
     nameLabel.text = item 
    } 

} 

我如何設置item PR從ItemNavigationController開始ItemViewController

回答

1

如果ItemViewController是ItemNavigationController的topViewController,那麼你可以直接通過調用topViewController方法得到它,否則,你應該通過ItemNavigationController的viewControllers財產循環,並發現它。

+0

沒有名爲'rootViewController'的方法或變量。你能提供一個循環的例子嗎?對於這樣一個「常見」任務,循環感覺有點不對。我的整體方法有問題嗎? – bodokaiser 2014-10-29 08:43:45

+0

對不起,應該是topViewController,ItemViewController在哪裏?它是堆棧中最頂層的視圖控制器嗎? – gabbler 2014-10-29 08:48:55

+0

是的,它是'topViewController'。 '(topViewController作爲ItemViewController).item = item'。 – bodokaiser 2014-10-29 08:52:19