簡體   English   中英

我可以模態呈現屬於導航控制器的視圖控制器嗎?

[英]Can I modally present a view controller that is part of a navigation controller?

我有一個表格視圖和一個地圖視圖,它們需要顯示相同的詳細信息控制器。 詳細信息控制器當前通過表視圖嵌入到導航控制器中(我相信它仍在使用從主從模板中自動生成的序列)。

我打算將地圖注釋設置為適當的細節控制器,但僅出於測試目的,我將UIButton放在MKMapView上,並通過情節提要進行了模態選擇到detailViewController。

當我運行該應用程序時,地圖視圖上的按鈕不執行任何操作,也不會引發/記錄錯誤。 我知道您不必在導航控制器中以模態形式顯示視圖控制器,所以我不可以以模態形式呈現作為導航控制器一部分的視圖控制器嗎?

我是否需要將細節控制器從情節提要的導航控制器中取出,然后手動將其推入導航堆棧?

您可以用編碼的腳本替換情節提要腳本腳本:

在每個源控制器中創建一個屬性destinationVC並將其初始化:

@property (nonatomic, strong)  UIViewController* dest;
self.dest = [self.storyboard instantiateViewControllerWithIdentifier:@"destinationID"];

不要忘記在情節提要中為destinationID設置標識符。

要搜索模態:

[self presentModalViewController:self.dest animated:YES];

推動:

[self.navigationController pushViewController:self.dest animated:YES];

當您選擇返回時,您應該小心dest VC。

if ([self.parentViewController.modalViewController isEqual:self]) {
   //Modal
   [self dismissModalViewControllerAnimated:YES];
} else {
   //Push
   [self.navigationController popViewControllerAnimated:YES];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM