Ios 使用if语句更改UIViewcontroller
我有两个相同的视图控制器唯一的区别是第一个显示mapview,另一个不显示mapview 在本例中,我使用了分段控件,其中在分段0中显示带有mapView的视图控制器,但我有一些其他数据,这些数据没有要在mapView中显示的信息。我想知道如何做到这一点(使用if语句或类似的语句),因为另一个UIView没有segueIos 使用if语句更改UIViewcontroller,ios,objective-c,autolayout,xcode-storyboard,Ios,Objective C,Autolayout,Xcode Storyboard,我有两个相同的视图控制器唯一的区别是第一个显示mapview,另一个不显示mapview 在本例中,我使用了分段控件,其中在分段0中显示带有mapView的视图控制器,但我有一些其他数据,这些数据没有要在mapView中显示的信息。我想知道如何做到这一点(使用if语句或类似的语句),因为另一个UIView没有segue 如果要隐藏地图视图高度,可以将其设置为0。比如: mapView.frame.size.height = 0 这基本上是一种不好的做法。如果您的应用程序需要2个或多个具有类似
如果要隐藏地图视图高度,可以将其设置为0。比如:
mapView.frame.size.height = 0
这基本上是一种不好的做法。如果您的应用程序需要2个或多个具有类似设计的屏幕,则应仅使用一个viewcontroller/场景。这样,如果发生设计更改,您只需更改一次 2个仅具有地图可见性差异的ViewController不难编码。您只需为该viewcontrollerA声明一个属性bool,如下所示:
@property (nonatomic, assign) BOOL isMapVisible;
然后在viewDidload on viewControllerA上,通过以下方式设置此地图的可见性:
if (!_isMapVisible) {
[_mapView setHidden = YES];
}
调用方viewcontroller然后执行prepareForSegue并在执行segue to viewControllerA之前相应地设置_isMapVisible。当您不想显示地图视图时,是否可以将高度约束设置为0?@J.Wang是的,但设置后会出现许多冲突约束。如果设置正确,则不应该设置这些约束。有什么冲突?如果我使用这个,我的视图将显示为空白?实际上我不确定你想要什么。这只是一个示例,说明如何使用单个Viewcontroller并根据调用者的不同在其上显示数据。在if语句中,您需要编写自己的方法-例如,将与mapView相关的所有对象放在另一个UIView中,然后在此if语句中将此UIView的高度约束设置为0。如果你使用约束的话。如果不使用约束,则必须手动定位对象。有很多可能性,你需要在你的代码/故事板上提供更多信息。