TransitionFromView删除以前的视图

omg*_*hon 9 uitableview uiviewanimationtransition ios

我在我的应用程序中的视图之间转换时使用TransitionfromView时遇到问题.

建立

这是View Controller的基本设置.它有两个视图.一个MKMapView和一个UITableView.按下切换按钮时,应该在地图和表格之间交替显示视图.

这是我的*.h文件

@interface BrowseBeaconsViewController : UIViewController <UITableViewDelegate, MKMapViewDelegate, UITableViewDataSource, CLLocationManagerDelegate >
{

__weak IBOutlet UIBarButtonItem *refreshBeacons;
__weak IBOutlet UIBarButtonItem *toggleView;
MKMapView* beaconMapView;
__weak IBOutlet UITableView* beaconTableView;
}
Run Code Online (Sandbox Code Playgroud)

因此,tableview来自故事板,而mapview是在程序中创建的.

问题

[UIView transitionFromView:beaconTableView toView:beaconMapView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {}];
Run Code Online (Sandbox Code Playgroud)

当我从MapView从MapView转换时,tableview的值为null(0x0000000).我确实理解transitionfromview的行为是从父视图中删除视图.但是当我尝试在转换后将tableview添加为子视图时它不起作用,因为该值为null.所以我的问题是如果视图为空,我如何在转换后添加tableview?

PS:我很抱歉,如果这是一个简单的问题,但我是iOS编程的新手,并且在发布此问题之前尝试查看论坛.

rde*_*mar 30

从该方法的文档:

"默认情况下,fromView中的视图在视图层次结构中由toView中的视图替换.如果两个视图都已经是视图层次结构的一部分,则可以在options参数中包含UIViewAnimationOptionShowHideTransitionViews选项,以便隐藏或显示它们."

因此,如果要保留两个视图,请将beaconMapView添加到视图层次结构中,并包含UIViewAnimationOptionShowHideTransitionViews选项.