2017-07-17 103 views
0

我有一些問題,以提供視圖控制器內詳細信息視圖控制器的主視圖控制器的詳細信息。有可能這樣做嗎?當前視圖控制器內的詳細信息視圖控制器中的詳細信息視圖控制器在swift 3

我想展示一個視圖控制器,當用戶點擊詳細信息視圖控制器上的按鈕時,完全像細節視圖控制器,雖然它不是。

如果有可能,那麼幫助我。如果沒有,然後指導我以某種方式來做到這一點。

回答

0

這是可能的,但你的細節VC必須是一個導航控制器,所以你可以呈現。

0

出示您的視圖控制器VC在窗口

let window = ((UIApplication.shared.delegate?.window)!)! 
window.rootViewController?.present(vc, animated: true, completion: nil) 
+0

此代碼不對您有幫助@ellen – Tann

+0

您是否有詳細視圖,然後 您無法在所提供的視圖控制器之上呈現另一個視圖控制器? – Ellen

0

的頂部試試這個:

class func presentViewCoontroller(vc : UIViewController) -> Void{ 
     let viewController : UIViewController = ((UIApplication.shared.delegate as! AppDelegate).window?.rootViewController)! 
     if (viewController.presentedViewController != nil) { 
      viewController.presentedViewController?.present(vc, animated: true, completion: nil) 
     } 
     else{ 
      viewController.present(vc, animated: true, completion: nil) 
     } 
    } 

調用

self.presentViewCoontroller(vc: yourcontroller) 
+0

我不想在整個屏幕內查看viewController。我只想查看details view controller中的viewController。當我點擊一個按鈕時,這個事件應該發生。 – Tann

0

創建主視圖CON的靜態實例troller,然後嘗試用該參考提供一個新的視圖控制器。

class MasterViewController : UIViewController{ 
static var masterVC : UIViewController? 
     override func viewDidLoad() { 
     super.viewDidLoad() 
     MasterViewController.masterVC = self 
     } 
} 


class DetailViewController : UIViewController{ 

      override func viewDidLoad() { 
      super.viewDidLoad() 
      } 

      @IBAction func didTapButton(_ sender: UIButton) { 
       MasterViewController.masterVC?.present(<newViewController>, animated: true, completion: nil) 
      } 
} 
+0

您的代碼在全屏幕中呈現視圖控制器。但我不想那樣。我只想在詳細視圖控制器屏幕中顯示newViewController。那時候我還想在我的屏幕上看到我的主表格視圖控制器。 – Tann

+0

你能分享你的視圖(主控制器)與此代碼相關嗎? –

0

您可以從故事板嘗試像,

在故事板,選擇Segue公司作爲目前模態,並轉到身份檢查,並選擇演示文稿選項當前上下文。

希望它有幫助。

相關問題