2013-09-23 48 views
0

如果他們沒有保存更改,我想阻止某人返回導航控制器。 SO上的大多數帖子都會討論覆蓋後退按鈕(使用各種技術來完成此操作)。然而,iOS7讓你現在刷回去在navigationViewController ...在iOS7中攔截導航

我沒有看到UINavigationControllerDelegate它看起來像正確類型的delegate我想實現,但我看不出有什麼辦法取消導航操作。任何想法如何做到這一點?

+0

http://stackoverflow.com/a/17213640/3226583 – manya

回答

1

不幸的是,在iOS7中沒有任何變化,如果您想要進行一些檢查,您仍然需要僞造後退按鈕。

順便說一句,現在更容易,因爲你不需要僞造箭頭按鈕。

編輯:

做到這一點:

UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 44.0f, 30.0f)]; 
[backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal]; 
[backButton addTarget:self action:@selector(popVC) forControlEvents:UIControlEventTouchUpInside]; 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
+1

但我怎麼截取屏幕邊緣拖動(新的iOS7)?那不使用按鈕嗎? – ConfusedNoob

+0

你只需要替換左後衛BarButtom。 – null

+0

您可能想要檢測添加到您的UIGestureRecognizer(使用addTarget消息)的方法中的手勢開始並顯示它的警報。可能這會破壞姿態 – Mix