簡體   English   中英

創建viewcontroller的實例而不在Swift中展示它

[英]Create instance of viewcontroller without presenting it in Swift

我有一個帶有兩個視圖控制器,一個地圖和一個UIListView的tabViewController。 我想將當前地圖區域中心傳遞給listView控制器,但當前需要用戶先點擊UIListView控制器,然后再返回地圖,然后再返回到listview控制器,以使地圖區域中心值成為通過。

我肯定有解決這個問題的簡單而優雅的方法,但我不確定該如何解決。

為什么不創建由某些視圖控制器更新並由其他視圖控制器讀取的單例呢? 這將是讓兩個原本不相關的視圖控制器進行通信的首選方法,即使沒有同時分配它們也是如此。

編輯

假設您有一個像這樣的課程:

class PointSingleton {
    var point = CGPointZero
    static let sharedPoint : PointSingleton = PointSingleton()

    private init() {}
}

您現在可以

PointSingleton.sharedPoint.point = CGPoint(x: 2, y: 3)

以及使用

PointSingleton.sharedPoint.point

無論您在哪里。

點擊UIListView項時,更改選項卡欄控制器的選定索引。 沒有提供任何代碼,我能提供的最好的是

  tabBarController?.selectedIndex = 0;

然后傳遞數據

var destinationViewController = tabBarController.viewControllers[0] as UIViewController
destinationViewController.whateverVar = "some value"

編輯:

在列表視圖上,創建一種訪問MapViewController的方法

//your map
    var mapVC = tabBarController.viewControllers[0] as UIViewController

然后像往常一樣抓住地圖中心

var centerCoord = mapVC.mapView.centerCoordinate

暫無
暫無

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

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