我有一個應用程序使用了一些視圖,它們之間的交換非常尷尬,所以我認爲這可能是一個想法,使一些代碼會自動進入編號頁面,加載相應的視圖,然後根據該視圖執行需要執行的任何設置。我想出了以下內容。我設置的測試頁已交換到OK,甚至可以正確設置代理,但它不會對頁面內容執行任何設置操作,例如更改其包含的標籤上的文本或輕彈切換切換到ON。我已經一步一步地完成了程序,所有的命令都正在執行,但是結果並沒有顯示在最終的屏幕上。仍然難以正常交換視圖
currentMenu是一個UIViewController指針,我將目標放在當前使用的ViewController中,以便我知道稍後會解僱什麼。 clusterMenu是ClusterMenu類型的特定視圖控制器,我正在使用它作爲切換到的示例頁面。
對我而言,資源可能無法正確地使用此代碼正確釋放,但這是我稍後可以處理的事情,一旦我可以解決它爲什麼沒有正確設置的問題。
下面是代碼:
UIViewController *vanishing = currentMenu;
if (page == 3){
clusterMenu = [[ClusterMenu alloc] initWithHeader:clusterMap.header];
[clusterMenu setDelegate:self];
clusterMenu.editSwitch.on = clusterMap.editMode;
[clusterMenu changeEditStatus];
currentMenu = clusterMenu;
}
[UIView transitionFromView:vanishing.view toView:currentMenu.view duration:0.5
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL done){[vanishing release];}];
我發現了一些進一步的東西,我想更多地瞭解它。我看起來有點困難的原因是我試圖在視圖本身被添加到另一個視圖之前對視圖的子視圖進行編輯。這是否意味着在視圖層次結構中已經設置了視圖之前不會生成子視圖?無論如何,它似乎至少解決了部分問題,但更多的數據將不勝感激! – Ash 2010-08-30 15:41:11