2017-09-19 96 views
0

我有一個應用程序,它有一個單一的窗口控制器和2個視圖controllers.I創建了從主視圖控制器內的按鈕到第二個視圖控制器;顯示模態窗口。從第一個控制器的第二個視圖控制器的訪問控制

是否可以通過在第一個視圖控制器的.swift文件中創建一個插座來訪問位於第二個視圖控制器內的控件。即:從第一視圖控制器訪問第二視圖控制器內的控件。

+0

問題是有點不清楚,但從我得到它你本質上想要傳輸數據從第一視圖ccontroller到第二個。它是否正確? – TNguyen

+0

@ TPN1994是的..正確。 – techno

+0

你可以做的是在第二個視圖控制器內部定義變量,然後從第一個視圖控制器到第二個視圖控制器的segue設置這些變量的值,然後第二個視圖控制器可以使用它 – TNguyen

回答

0

你想達到什麼目的? 一般來說 - 編號按鈕,標籤或由視圖控制器加載的視圖僅在顯示視圖控制器的視圖時處於範圍內(加載到內存中)。

很少有人會需要初始化視圖控制器並在視圖顯示之前進行方法調用,所以真正的問題是您爲什麼要這樣做。 請記住它被稱爲「視圖控制器」,即它控制當前的視圖對象。 我相信你的設計存在缺陷,希望這樣做。

+0

我有一個視圖,我要求用戶輸入。然後顯示第二個視圖,它有一個進度面板和其他東西;這是執行真實處理的位置。目前我只有一個'ViewController.Swift'文件。如果我可以從第二個視圖鏈接控件,例如:進度條,我可以在ViewController.swift中運行代碼並更新第二個視圖。我不知道這是否可能。請指教。 – techno

+0

如何使用進度面板加載第二個視圖。因爲如果第二個視圖是由viewController加載的,你應該可以在viewController中引用它。 – oldmanswit

+0

有一個窗口控制器和兩個視圖控制器。我通過按下按鈕將第一個視圖控制器鏈接到第二個視圖控制器。 – techno

0

製作假定加載第二當第一視圖控制器不破壞(即第二個是一個彈出):

爲了正確你需要兩個部件的兩種視圖控制器之間進行通信。

執行segue時,需要將參數傳遞給第二個視圖控制器。 https://developer.apple.com/documentation/appkit/nssegueperforming 爲了回傳給第一個視圖控制器,你需要實現一個委託。即第二個視圖控制器將工作委託給第一個: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html - 查看有關委派的部分。

+0

好吧..會檢查出來。謝謝.. – techno

+0

或者,您可以通過放入新視圖(而不是新視圖控制器的視圖)以編程方式加載第一個視圖控制器內的進度視圖。然後,進度面板位於第一個視圖控制器的範圍內。 – oldmanswit

+0

通過視圖你是指'盒子'? – techno

相關問題