2013-01-08 10 views
8

私のアプリでビュー間を移動する際にTransitionfromViewを使用する際に問題があります。TransitionFromViewは以前のビューを削除します

セットアップ

これは、ビューコントローラの基本的なセットアップです。そこには2つのビューがあります。 MKMapViewとUITableView。トグルボタンを押すと、マップと表の間で表示を交互に切り替えることになっています。

これは私の* .hファイル

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

__weak IBOutlet UIBarButtonItem *refreshBeacons; 
__weak IBOutlet UIBarButtonItem *toggleView; 
MKMapView* beaconMapView; 
__weak IBOutlet UITableView* beaconTableView; 
} 

のMapViewをプログラムで作成されている間ので、テーブルビューはストーリーボードから来ています。

問題Iはテーブルビューの値(0x0000000)ヌルであるのMapViewからテーブルビューからの遷移

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

。私は、移行ビューの動作が親ビューからビューを削除することを理解しています。しかし、移行後にサブビューとしてtableviewを追加しようとすると、値がnullのため動作しません。だから私の質問は、ビューがNULLになっている場合、移行後にテーブルビューを追加する方法ですか?

PS:これは簡単な質問ですが、お詫び申し上げますが、私はiOSプログラミングの初心者です。この質問を投稿する前にフォーラムを見てみました。

答えて

29

:。

「デフォルトでは、fromViewのビューがtoViewのビューでビュー階層に交換される両方のビューがすでにビュー階層の一部である場合は、含めることができますoptionsパラメータのUIViewAnimationOptionShowHideTransitionViewsオプションを使用すると、単純に非表示または表示できます。

両方のビューを残したい場合は、ビュー階層にbeaconMapViewを追加し、UIViewAnimationOptionShowHideTransitionViewsオプションを追加します。

+0

ありがとうございました。 – omgpython

+0

非常にクール、ありがとう – kernix

+0

これは動作します。しかし私は別の質問があります。どんなビューが前にあるかを決めるには?私はこれをコレクションビューのセルで使用しているからです。 –

2

beaconTableViewとは別に参照する必要があります。または単にweakではなくstrongとして宣言する必要があります。 beaconTableViewは弱いと宣言されているため、iOS 5+では、親ビューから削除することで、他のすべての参照が削除された後に、ハングする必要はありません。その方法上のドキュメントから

0

削除すると、不要になったビューはすぐに解除されます。

関連する問題