2014-07-20 23 views
0

對我而言,QuickDialog的一個主要區別是單個.m文件(settingsFormBuilder.m)可以在導航控制器的一個根下載入多個視圖的所有代碼,例如它似乎鏈接到一個視圖控制器(settingsViewController.m)。檢測哪個根元素將出現在QuickDialog中

我的問題是,當我點擊一個tableviewcell時,底層視圖將被推動,viewViewController.m中的viewWillAppear將被擊中。我不想在這個viewWillAppear方法中插入if語句來查看是否正在推送特定的rootElement而不是另一個。

如何創建if語句來確定我的'userAccessRoot'是否在viewWillAppear中加載,而不是說我的'deviceConfigRoot'?

比如我需要這樣的事情,但就是無法找到一個碼組合,將做到這一點

- (void)viewWillAppear:(BOOL)animated { 
     if ([self.root.activeRoot.key isEqualToString:"userAccessRoot"]) { 
      //Do something 
     } 
     else { 
     } 
} 

在此先感謝

回答

0

我想通了,如何解決這個問題,這是更多的是我對quickDialog的工作原理缺乏瞭解。如果有人遇到這個問題,這是做什麼。

關鍵是你如何設置你的QRootElement的controllerName。對於我所有的QRootElements,我的controllerName引用了相同的.m文件。例如:

userListRoot.controllerName = @"SettingsViewController"; userAccessRoot.controllerName = @"SettingsViewController";

出於某種原因,我認爲這已經是這個樣子的樣本項目似乎以類似的方式進行設置。我只需要創建一個新的類,該類是QuickDialogController的子類,並將controllerName指向該類。現在,當加載QRootElement時,所有操作均通過作爲「UserSettingsViewController」的創建的.m文件進行。因此,無需像通常那樣嘗試找出哪個根啓動viewWillAppear,只要您將一個QRootElement鏈接到一個.m文件即可。請參閱以下示例,瞭解我的QRootElements如何擁有不同的控制器名稱

userListRoot.controllerName = @"SettingsViewController"; userAccessRoot.controllerName = @"UserSettingsViewController";