iPad用の独自の分割ビューコントローラを作成しました。自分自身を作成する私の主な目的は、ユーザーが自由に左の痛みを開いたり閉じたりできるようにすることです。私が抱えている問題は、私の右の痛みでビューコントローラを取得して変更をアニメーション化する方法が見つからないということです。私はスプリットビューコントローラでビューをアニメートしますが、右側のペインの他のすべてのサブビューコントローラはビューをアニメートしません。私はビューを切り替えるわけではないので、これらのメソッドを使用することはできませんし、方向を変更していないので、これらのメソッドはアウトです(ただし、とにかく試してみましたが機能しません)。誰かがこれを行う方法を知っていますか?UIViewControllerコンテナのサブコントローラのアニメーション
は現在、アニメーションを開始するための私のコードは次のとおりです。
- (void) setShowLeftPane:(BOOL)showLeftPane{
if (_showLeftPane != showLeftPane){
_showLeftPane = showLeftPane;
//Alert viewcontrollers and perform animation
if (showLeftPane) [_leftController viewWillAppear:YES];
else [_leftController viewWillDisappear:YES];
[UIView animateWithDuration:.25 animations:^{
[self layoutViews];
[_rightController viewWillLayoutSubviews];
} completion:^(BOOL fin){
[_rightController viewDidLayoutSubviews];
if (_showLeftPane) [_leftController viewDidAppear:YES];
else [_leftController viewDidDisappear:YES];
}];
//Switch out the appropriate pane button view
[_showLeftPane ? _openLeftPane : _closeLeftPane removeFromSuperview];
[self.view addSubview:_showLeftPane ? _closeLeftPane : _openLeftPane];
}
}
現在、私の右ペインビューコントローラはUINavigationControllerあるので、私は株式クラスを扱っています。私はカテゴリメソッドviewWillAnimateSubviewLayoutWithDuration:(NSTimeInterval)interval
をUINavigationControllerに追加することを検討しました。これは、ビューコントローラがそのビューコントローラをテストしてそのビューコントローラに送信してアニメーションを実行できるようにするものですが、在庫を使用する方法があればメソッド。
私は自分のNavigationControllerを書くことを検討していますが、それは私がしなくてもやりたくない仕事です。