簡體   English   中英

TransitionFromView刪除以前的視圖

[英]TransitionFromView removes previous view

我在我的應用程序中的視圖之間轉換時使用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;
}

因此,tableview來自故事板,而mapview是在程序中創建的。

問題

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

當我從MapView從MapView轉換時,tableview的值為null(0x0000000)。 我確實理解transitionfromview的行為是從父視圖中刪除視圖。 但是當我嘗試在轉換后將tableview添加為子視圖時它不起作用,因為該值為null。 所以我的問題是如果視圖為空,我如何在轉換后添加tableview?

PS:我很抱歉,如果這是一個簡單的問題,但我是iOS編程的新手,並且在發布此問題之前嘗試查看論壇。

從該方法的文檔:

“默認情況下,fromView中的視圖在視圖層次結構中由toView中的視圖替換。如果兩個視圖都已經是視圖層次結構的一部分,則可以在options參數中包含UIViewAnimationOptionShowHideTransitionViews選項,以便隱藏或顯示它們。”

因此,如果要保留兩個視圖,請將beaconMapView添加到視圖層次結構中,並包含UIViewAnimationOptionShowHideTransitionViews選項。

您需要對beaconTableView保持單獨的引用,或者只是將其聲明為強而不是弱。 由於beaconTableView已被聲明為弱,因此iOS 5+了解一旦刪除了對其的所有其他引用,就不需要它,在這種情況下,將其從父視圖中刪除。

刪除弱,否則視圖會在看起來不再需要時立即釋放。

暫無
暫無

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

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