私はXCodeでいくつかの巻き戻しセグを作成しました。デフォルトでは、私には望ましくないアニメーションが付いています。 Stack Overflowでいくつか検索したところ、アニメーションを無効にするためにチェックを外すことができるチェックボックスがあるはずですが、それはXcode 7にアップグレードできません。プログラムを使って巻き戻しセグアニメーションを無効にするにはどうすればよいですか?私は現在XCode 6.4を実行しています。iOS-プログラムで巻き戻してアニメーションを無効にするにはどうすればよいですか?
0
A
答えて
0
コントローラの名前をFirstController
に戻して、SecondController
を解雇してください。また、ここでは2つの場合があります:1つは、SecondController
がモーダルに表示され、1つがUINavigationController
に関係する場合です。
セグのリセット/無視modalPresentationStyle
を修正する必要があります。 IBAction
方法では、以下を追加します巻き戻し時にFirstController
に呼ばれる(私はあなたがこの方法prepareForUnwind
と呼ばれると仮定します):
- (IBAction)prepareForUnwind:(UIStoryboardSegue *)segue {
//TODO: add right condition if you have to
UIViewController* secondController = (UIViewController*)segue.sourceViewController;
secondController.transitioningDelegate = self;
secondController.modalPresentationStyle = UIModalPresentationCustom;
}
この部分はSecondController
がモーダルであることから却下されたときに動作します。さて、FirstController
はその代理人となるべき、両方のコントローラがUINavigationController
上に存在する場合のために:
- (void)viewDidLoad {
self.navigationController.delegate = self;
}
これはUIKitのは、遷移を続くためアニメーターオブジェクトのFirstController
を依頼するようになります。今度は返すようにFirstController
を修正する必要があります。 FirstController.h
で
:それは両方のケースのためのいくつかのアニメーターオブジェクトを返すよう
@interface FirstController : UIViewController<UIViewControllerTransitioningDelegate, UINavigationControllerDelegate>
は(心がコメント)、FirstController.m
に対応するコードを追加します。
- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
return [Animator new];
}
- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC {
//This will disable ALL animations on particular UINavigationController
//return nil to use default animation when appropriate
return [Animator new];
}
今Animator
自体を実装します。それはUIViewControllerAnimatedTransitioning
プロトコルを確認する必要があります。 Animator.h
で
:Animator.m
で
@interface Animator : NSObject<UIViewControllerAnimatedTransitioning>
@end
:
@implementation Animator
- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext {
return 0;
}
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext {
UIViewController *controllerToDismiss = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIView *viewToDismiss = [transitionContext viewForKey:UITransitionContextFromViewKey];
CGRect frameToDismissTo = [transitionContext finalFrameForViewController:controllerToDismiss];
viewToDismiss.frame = frameToDismissTo;
UIViewController *controllerToPresent = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *viewToPresent = [transitionContext viewForKey:UITransitionContextToViewKey];
CGRect frameToPresentTo = [transitionContext finalFrameForViewController:controllerToPresent];
viewToPresent.frame = frameToPresentTo;
[[transitionContext containerView] addSubview:viewToPresent];
[transitionContext completeTransition:YES];
}
@end
関連する問題
- 1. 巻き戻し/転送オプションを無効にするにはどうすればよいですか?
- 2. iOSでスリープモードをプログラムで有効/無効にするにはどうすればよいですか?
- 3. すべてのブラウザで戻るボタンを無効にするにはどうすればよいですか?
- 4. 不適切なスタック巻き戻しを観察するにはどうすればよいですか?
- 5. 竜巻ログでconnectionpoolを無効にするにはどうすればいいですか?
- 6. UIViewアニメーションブロックにネストされたコードのアニメーションを無効にするにはどうすればよいですか?
- 7. Drupalモジュールをプログラムで無効にしてアンインストールするにはどうすればいいですか?
- 8. gifアニメーションをプログラムで無効にする
- 9. iOSアプリケーションをプログラムでインストールするにはどうすればよいですか?
- 10. Androidで「設定」オプションをプログラムで無効にするにはどうすればよいですか?
- 11. 戻るボタンの動作を無効にするにはどうすればよいですか?
- 12. PopoverでTableView選択でアニメーションを無効にするにはどうすればいいですか?
- 13. paypalを使用してプログラムで払い戻しを行うにはどうすればよいですか?
- 14. 主キー制約をプログラムで無効にするにはどうすればよいですか?
- 15. com +アプリケーションをプログラムで無効にするにはどうすればよいですか?
- 16. iOSで日付のメタフォーマット検出を無効にするにはどうすればよいですか?
- 17. cordova iosアプリでNSURLキャッシュを無効にするにはどうすればよいですか?
- 18. iOS 5:アプリケーションでEmojiキーボードを無効にするにはどうすればよいですか?
- 19. iOSアプリケーションでアクセシビリティフォントの太字を無効にするにはどうすればよいですか?
- 20. iosでVoiceOverジェスチャーを無効にするにはどうすればよいですか?
- 21. サードパーティiOSフレームワークのコード署名をCocoaPodsで無効にするにはどうすればよいですか?
- 22. iOSでTextDidChangeイベントを無効にするにはどうすればよいですか?
- 23. Xamarin Forms for iOSのScrollViewでバウンスを無効にするにはどうすればよいですか?
- 24. iOSで制限モードを無効にするにはどうすればよいですか?
- 25. キーボードをiOSに隠さずに無効にするにはどうすればよいですか?
- 26. CSS3のホバートランジションを1回だけ実行し、ユーザーの「ホバーオーバー」後に「巻き戻し」しないようにするにはどうすればよいですか?
- 27. Ctrl + F4を無効にするにはどうすればよいですか?
- 28. ピボットフリックイベントを無効にするにはどうすればよいですか?
- 29. Android:デスクトップを無効にするにはどうすればよいですか?
- 30. jqgridローカルキャッシュを無効にするにはどうすればよいですか?