我有兩個相同的視圖控制器,唯一的區別是第一個顯示mapview,而另一個不顯示mapview。用if語句更改UIViewcontroller
在這種情況下,我已經分段控制在段0顯示視圖控制器與地圖視圖,但我有一些其他數據,沒有信息要顯示在地圖視圖中。我想知道如何做到這一點(與if語句或類似的東西),因爲其他UIView沒有segue。
我有兩個相同的視圖控制器,唯一的區別是第一個顯示mapview,而另一個不顯示mapview。用if語句更改UIViewcontroller
在這種情況下,我已經分段控制在段0顯示視圖控制器與地圖視圖,但我有一些其他數據,沒有信息要顯示在地圖視圖中。我想知道如何做到這一點(與if語句或類似的東西),因爲其他UIView沒有segue。
你可以,如果你想隱藏它MapView的高度設置爲0。像:
mapView.frame.size.height = 0
這實質上是一種不好的做法。如果您的應用需要2個或更多類似設計的屏幕,那麼您應該只使用一個視圖控制器/場景。這樣,如果發生設計更改,您只需更改一次。
2只有地圖可見度不同的viewcontrollers不難編碼。你只需要聲明一個屬性布爾爲viewcontrollerA像這樣:
@property (nonatomic, assign) BOOL isMapVisible;
然後在viewDidLoad中的viewControllerA,設置此地圖由知名度:
if (!_isMapVisible) {
[_mapView setHidden = YES];
}
呼叫者的ViewController然後實現prepareForSegue並設置_isMapVisible相應地在執行segue到viewControllerA之前。
如果我使用這個,我的視圖會出現一個空白區域? – breadevelopment
其實我不確定你想要什麼。這只是一個示例,如何根據調用者使用單個ViewController並在其上顯示不同的數據。在if語句中,您需要編寫自己的方法 - 例如,將與mapView相關的所有對象放在另一個UIView中,然後在此if語句中將此UIView的高度約束設置爲0。那就是如果你使用約束。如果你不使用約束,那麼你必須手動定位。有很多可能性,你需要提供更多關於你的代碼/故事板的信息。 – GeneCode
當您不想顯示地圖視圖時,您可以將高度限制設置爲0嗎? –
@ J.Wang是的,但設置後出現了很多衝突限制 – breadevelopment
不應該是如果你正確設置它們。什麼是衝突? –