2012-12-18 57 views
0

我有Android的經驗,但對ios真的很新。在Android上,我可以使用startActivityForResult()從屏幕A導航到屏幕B.然後,當B關閉時,系統將通過回調方法通知屏幕A執行某些操作(例如獲取返回值,刷新數據等。 ..)如何將值從屏幕返回到ios上的上一個屏幕?

我想在這裏問的是:有沒有辦法註冊一個回調函數,當屏幕B關閉時會調用?如何將數據從屏幕B返回到屏幕A?

我知道我可以聲明一個公共屬性,然後從屏幕B爲它設置值。但是,我認爲這種方式可能會使我的源代碼變得複雜並且安全性降低。 (即我不想將財產開放給其他屏幕進行評估)。

謝謝。

回答

0

您可以使用委託模式。

(看看UITextField,UITableView等...他們都使用這種模式)。

你建立一個委託財產上稱爲像第二種觀點...

SecondViewDelegate 

而且在協議你給它一個方法像...

- (void)secondViewDidSelectValue:(NSString*)selectedValue; 

然後在第一個視圖讓你把它作爲第二個視圖的代表。

這種模式有很多資源。

0

是的,有更好的方法來做到這一點。它被稱爲代表團。在視圖控制器中,您正在解僱您創建一個@protocol和一個@property (nonatomic, weak) id <ProtocolName> delegate;。您可以從以前的視圖控制器中設置該值:secondVC.delegate = self。它將像Java接口一樣。然後,當您的第二個視圖控制器消失時,請調用委託方法(例如,在viewWillDisappear:中)。

希望這是有道理的!

相關問題