[XCode]UISplitViewControllerからUIViewController SplitViewから1つのビューに遷移させる方法
2013/09/06
昨日に引き続き。
[XCode4.4]UIViewController→UISplitViewController 1つのビューからSplitViewに遷移させる方法
上の記事ではUIViewControllerからUISplitViewControllerへ遷移させる方法をご紹介しましたが、今回は逆です。
ログアウト処理なんかに役立つのではないかと思います。
カスタムSegueで解決
今回も上の記事と同様にカスタムSegueを作ってやります。
今回はSplitViewのDetailViewのナビゲーションバーからUIViewに戻る処理を実装例にしてみます。
DetailViewにはBarButtonItemを。そこからActionをCustomにしたSegueをUIViewControllerへ繋げば準備完了。
そして前回同様File→New→File→Objective-C classでUIStoryboardSegueをサブクラスにしてクラスを作成します。以下参照。
今回はViewFlipSegueという名前にしてみました。
そしてできた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]追加してインポートしたヘッダーファイルが見つからないときの対処法3つ
XCodeでインポートの宣言をした際(import <hoge.h> …
-
[git]Coda2でgitを設定してWordPressのテーマファイルをバックアップする方法
ブログのテーマを作り直していろいろしています。家ではiMac、外ではMacBoo …
-
[XCode]gitでcommitしたファイル(リモートリポジトリ)を巻き戻す方法
結構前からgitを実験的に導入してcommitやpushをしています。とうとう先 …
-
[XCode]iPhoneに入っていないフォント(カスタムフォント)を使えるようにする方法と注意点
iPhoneは結構いろんなフォントが使えますが、「オリジナルのフォントを使いたい …
-
[XCode]UIViewControllerからUISplitViewController 1つのビューからSplitViewに遷移させる方法
先日、アプリを初めてAppleに申請しました。@hawk_aです。 iOS開発の …
-
[XCode]親子関係じゃないView間で値の受け渡しをする方法
@hawk_a 親子じゃないときは、Appdelegateに変数書いてそれを参照 …
-
[XCode]Title set but using a system Identifierなる警告が出たときの対処法
最近iPhoneアプリ開発を始めた@hawk_aです。 StoryBoardを使 …
-
[XCode]UINavigationBarにUIBarButtonItemでボタンを追加する方法
アプリ開発には欠かせないナビゲーションバー。 UINavigationBarにボ …
-
デスマーチを止める!システム開発の成功に「設計」と「テスト」は欠かせない
「デスマーチ」という、IT業界で名の知れた用語があります。 商品知識のない営業が …