什麼我迄今所做的:遞歸實例化時故事板中的UI元素和IBOutlet變量?
我使用的Xcode 4.2。我創建了一個包含ImageView的UITableView。 UITableView使用具有文件MyTableViewController.m/.h的MyTableViewController類。我創建了一個名爲_bgimageview的IBOutlet變量。然後在故事板中,在連接檢查器中,我將ImageView連接到這個_bgimageview變量。在MyTableviewController.m的viewDidLoad函數中,我將背景圖像設置爲_bgimageview。當我運行模擬器時,點擊幾個選項卡可以訪問MyTableViewController,然後看到背景圖像。事情迄今爲止效果很好。
問題
我也成功地建立了一個遞歸樹,但問題是,我的樹的根級別後失去backgorund圖像。我想我知道爲什麼,但不知道如何解決。我實例上的每個新的MyTableViewController行單擊像這樣:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewController *childView = [[MyTableViewController alloc] init];
childView._menu = children; // an NSDictionary of children
[self.navigationController pushViewController:childView animated:YES];
}
正如前面提到的,我填充在viewDidLoad中功能backgruond圖像IBOutlet中的變量。但是,IBOutlet變量通過故事板連接連接到ImageView。在根級別以下的樹級別中,我編程實例化新的MyTableViewControllers,因此,我可能會失去後端圖像的IBOutlet變量與故事板中提到的實際UIImageView之間的關係。
有人可以重新向我保證,這是問題,以及如何在以分層方式使用時向MyTableViewController添加backgorund圖像?
如果您正在使用故事板,爲什麼不使用segues?您可以嘗試從表視圖單元向同一個表視圖控制器啓動一個segue,而不是手動實例化。對於參數傳遞,如果需要,可以使用'prepareForSegueWithIdentifier:'回調函數。 – Lvsti
@Lvsti - 很好的時機,您的評論就像我發佈我的答案一樣! – jrturton
@jrturton哈哈true :) – Lvsti