使用if语句更改UIViewcontroller

时间:2017-02-14 21:24:40

标签: ios objective-c autolayout xcode-storyboard

我有两个视图控制器相同,唯一的区别是首先显示一个mapview而另一个不显示mapview。

在这种情况下,我有分段控件,其中段0显示带有mapView的视图控制器,但我有一些其他数据没有要在mapview中显示的信息。我想知道如何做到这一点(使用if语句或类似的东西),因为其他UIView没有segue。

View Controller with mapview

Infos

2 个答案:

答案 0 :(得分:1)

这实际上是一种不好的做法。如果您的应用需要2个或更多具有类似设计的屏幕,那么您应该只使用一个viewcontroller / scene。这样,如果发生设计更改,您只需要更改一次。

只有地图可见性不同的2个视图控制器并不难编码。你只需为这个viewcontrollerA声明一个属性bool:

@property (nonatomic, assign) BOOL isMapVisible;

然后在viewControllerA上的viewDidload上,通过以下方式设置此地图的可见性:

if (!_isMapVisible) {
  [_mapView setHidden = YES];
} 

然后调用者viewcontroller实现prepareForSegue,并在执行segue到viewControllerA之前相应地设置_isMapVisible。

答案 1 :(得分:0)

如果要隐藏它,可以将mapview height设置为0。像:

mapView.frame.size.height = 0