簡體   English   中英

兩個視圖控制器之間的爭論

[英]Segue between two view controllers

在此輸入圖像描述

在我的故事板上(如上所示),我有一個ViewController,它包含一個帶注釋的MKMapView。 這些注釋包含一個公開圖標,在點擊時,應該將用戶導航到另一個ViewController。 為此,我在視圖控制器之間創建了一個push segue。 然后我給它一個'showDetail'標識符並實現了以下代碼。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    [self performSegueWithIdentifier:@"showDetail" sender:self];
}

但是我收到以下錯誤。

Could not find a navigation controller for segue 'showDetail'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

我哪里錯了? 我已經嘗試將我的源UIViewController更改為UINavigationController,但視圖只顯示為黑屏。

最簡單的方法是選擇要作為導航層次結構根目錄的View控制器並選擇

Editor > Embed In > Navigation Controller

這將創建新的導航控制器並為您提供所有內容。

實際上,您必須將UIViewController設置為UINavigationController的根控制器(或者從具有navcontroller的視圖控制器推送)。 要做到這一點

  • 將新的導航控制器拖到故事板中 - 默認情況下會將其附加到tableview控制器
  • 刪除tableview控制器右鍵單擊導航控制器,並將“Root View Controller”屬性連接到現有的視圖控制器
  • 將入口點箭頭從視圖控制器移動到根視圖控制器

檢查以下步驟:1。單擊兩個視圖控制器之間的連接。 2.單擊屬性檢查器3.將標識符設置為“showDetail”。 4.保存並運行。

暫無
暫無

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

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