Exception Code.

iPhone、Macと読書が大好き。iPhone・Mac・書評を中心に好きな事を書いていました。今は『ほーくブログ』でブログを書いています。

[XCode]UISplitViewControllerからUIViewController SplitViewから1つのビューに遷移させる方法

      2013/09/06

MasterDetail xcodeproj  MainStoryboard storyboard 5

昨日に引き続き。

[XCode4.4]UIViewController→UISplitViewController 1つのビューからSplitViewに遷移させる方法

上の記事ではUIViewControllerからUISplitViewControllerへ遷移させる方法をご紹介しましたが、今回は逆です。

ログアウト処理なんかに役立つのではないかと思います。

カスタムSegueで解決

今回も上の記事と同様にカスタムSegueを作ってやります。

今回はSplitViewのDetailViewのナビゲーションバーからUIViewに戻る処理を実装例にしてみます。

MasterDetail xcodeproj  MainStoryboard storyboard 7

DetailViewにはBarButtonItemを。そこからActionをCustomにしたSegueをUIViewControllerへ繋げば準備完了。

そして前回同様File→New→File→Objective-C classでUIStoryboardSegueをサブクラスにしてクラスを作成します。以下参照。

今回はViewFlipSegueという名前にしてみました。

Xcode 1

 

そしてできたViewFlipSegue.mに以下のコードを入力。

ViewFlipSegue.m

#import "ViewFlipSegue.h"

@implementation ViewFlipSegue

- (void)perform {
    //sourceViewController:遷移前のコントローラ
    //destinationViewController:遷移後のコントローラ
    UIViewController *sourceViewController = (UIViewController *)self.sourceViewController;
    UIViewController *destinationViewController = (UIViewController *)self.destinationViewController;
    
    UIWindow *window = [UIApplication sharedApplication].keyWindow;
    // 一度貼rootに設定することで、回転方向の修正
    window.rootViewController = destinationViewController;
    window.rootViewController = sourceViewController;
    
    [UIView transitionWithView:sourceViewController.view.window
                      duration:0.5
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    animations:^{
                        window.rootViewController = destinationViewController;
                    }
                    completion:^(BOOL finished){
                        //アニメーション終了後の処理
                    }];
}

@end

これを実行すると上手くUIViewに画面遷移します。

こちらのコードは以下の記事からちょっと手を加えたものです。

チーズくんの備忘録 [iOS]UIViewControllerからUISplitViewControllerへ遷移するためののSegue

感謝。

UIViewに戻るときにアニメーションが作動しないという問題がありまして、ちょっと原因はわからないんですが、とりあえずはこれで上手くいきそう。

 - 開発/プログラム

  関連記事

[XCode]iPhoneに入っていないフォント(カスタムフォント)を使えるようにする方法と注意点

iPhoneは結構いろんなフォントが使えますが、「オリジナルのフォントを使いたい …

bloggerXcode-icon-375x375-75.png
[XCode]追加してインポートしたヘッダーファイルが見つからないときの対処法3つ

XCodeでインポートの宣言をした際(import <hoge.h> …

bloggerXcode-icon-375x375-75.png
[XCode]ARC使用中にエラー「EXC_BAD_ACCESS」「respondsToSelector」が出た場合の対処法

なんでも、このエラーは解放済み(ゾンビ)のインスタンスにアクセスした時に出るエラ …

bloggerXcode-icon-375x375-75.png
[XCode]Title set but using a system Identifierなる警告が出たときの対処法

最近iPhoneアプリ開発を始めた@hawk_aです。 StoryBoardを使 …

bloggerXcode-icon-375x375-75.png
[XCode 4.3]Text Fieldの入力が終わったら次のText Fieldにソフトウェアキーボードでカーソルを移動させて最後にボタンを押す方法

XCodeをしこしこやっております。ほーく(@hawk_a)です。 プログラムの …

bloggerXcode-icon-375x375-75.png
[XCode]StoryBoardで作ったTableViewCellでオリジナルのセルを表示する方法

TableView標準のセルではやりたいことが表現できなさそうな時には、Tabl …

プログラミングができるだけではプロジェクトは成功しない

プログラマーなのに最近は電話対応で1日が終わる僕です。いろんな所でうめき声ととも …

bloggerXcode-icon-375x375-75.png
[XCode]UINavigationBarにUIBarButtonItemでボタンを追加する方法

アプリ開発には欠かせないナビゲーションバー。 UINavigationBarにボ …

[git]Coda2でgitを設定してWordPressのテーマファイルをバックアップする方法

ブログのテーマを作り直していろいろしています。家ではiMac、外ではMacBoo …

bloggerXcode-icon-375x375-75.png
[XCode]NSNotificationってなに?って人もとりあえずこれだけは知っておくべき

異なるクラス間で通知や変数を渡したりできる便利なNSNotificationです …