我有一個包含兩個不同視圖中的UIView的應用程序。我希望這兩個UIViews顯示相同的自定義圖形,並且有一個可編輯,一個不可編輯。當我從一個視圖控制器切換到另一個視圖控制器時(從具有不可編輯視圖的vc到可編輯視圖),我看到UINavigation控制器中的後退按鈕。現在,在編輯視圖之後,我希望更改反映在不可編輯的視圖中。我想通過在按下後退按鈕時收到通知來執行此操作。到目前爲止,我已經試過沒有奏效:將信息發送到我正在返回導航控制器的視圖
public class BlockingViewController: UIViewController, UINavigationControllerDelegate {
func navigationController(navigationController: UINavigationController, viewController: UIViewController, animated: Bool) {
print("In function")
}
}
我從https://developer.apple.com/library/ios/documentation/UIKit/reference/UINavigationControllerDelegate_Protocol/index.html接過navigationController方法簽名,但我不知道我做了,使得它不能正常工作有什麼變化。我拿出了可選的聲明,因爲包含它給了我一個錯誤消息,聲明「可選只能應用於協議成員」。我認爲這是一個協議成員,但我猜不是。
這是爲什麼需要在這種情況下,而不是方法名稱什麼的?當它被稱爲「willShowViewController」時,調用函數「navigationController」似乎毫無意義。另外,爲什麼可以在參數名稱之前放置它? – NumberOneRobot 2014-12-01 17:49:25
改變,給了我一個錯誤,然後將其更改爲 公共func導航控制器(navigationController:UINavigationController,willShowViewController viewController:UIViewController,animated:Bool) 沒有給我一個錯誤,但它也沒有被調用時我按下了後退按鈕。 – NumberOneRobot 2014-12-01 17:51:40
@ user1493950,就你的第一條評論而言,蘋果公司就是這樣命名的,所以就是這樣 - 我只是輸入「navigationContr」,然後從完成列表中選擇該方法。你有沒有設置控制器,你有這個代碼作爲導航控制器的代表? – rdelmar 2014-12-01 17:55:08