私はこの質問を完全に誤解していますが、2つのView Controllerの間で基本的な水平フリップを前後にしたいと思うように思えます。あなたがすでにこれを理解したとしても、それは同じ質問をしている誰かを助けるでしょう。
(1)あなたのストーリーボード(ViewController A & Bを持っている)で、AからBまでモーダル・セグを作成します。それに識別子(showViewControllerB)を与え、Transition:Flip Horizontalを選択します。私たちは、プロトコルとデリゲートを設定
:
を(2A)ViewControllerB.hでは@interfaceの上に追加します。
@class ViewControllerB;
@protocol ViewControllerBDelegate
- (void)viewControllerBDidFinish:(ViewControllerB *)controller;
@end
(2b)のプロパティとしてデリゲートを追加します。
@property (weak, nonatomic) id <ViewControllerBDelegate> delegate;
(3a)ViewControllerB.m合成:
@synthesize delegate;
(3b)は、バックフリップする方法でデリゲート:
- (IBAction)flipBack:(id)sender
{
[self.delegate viewControllerBDidFinish:self];
}
(4)ViewControllerA.hで一番上に#import "ViewControllerB.h"
と@interface <ViewControllerBDelegate>
の終わりに追加する(図5(a) )ViewControllerA.mでは、プロトコルに適合するようにメソッドを追加:
- (void)viewControllerBDidFinish:(ViewControllerB *)controller
{
[self dismissModalViewControllerAnimated:YES];
}
(5B)次にprepareForSegueにデリゲートとして設定:
を
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showViewControllerB"]) {
[[segue destinationViewController] setDelegate:self];
}
}
これがあなたの質問に答えることを願っています。私が誤解した場合は、私に知らせてください。
ストーリーボードを使用している場合は、iOS5を使用している必要があります。 'UIPageViewController'を使わないのはなぜですか?これは、iBooksに見られる標準のページフリップ動作すべてを実装します。 –
私はpagecurlについて話しているのではなく、ibooksの本棚から店舗に、また後方に向かっています。 – cschuff
基本的には、2つのView Controllerをそのままバックツーバックで表示する必要があります。そのため、同じスペース内で自由に両者を切り替えることができます。他、ああ?私は100%確信が持てるまでこれを答えとして投稿しませんが、代わりにこの錯覚を提供するのが最善だろうと思います(テーブルビューとマップビューがあるとしましょう。フリップでセカンドにセグをし、逆のフリップを "バック"にする。これを試してみる...) –