idev-recipes/RaisedCenterTabBar を使用していますが、カメラではなく、中央のボタンから呼び出されるモーダル ビューが必要です。
コードはこちら: https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar
これを機能させる方法についてのアイデアはありますか?
idev-recipes/RaisedCenterTabBar を使用していますが、カメラではなく、中央のボタンから呼び出されるモーダル ビューが必要です。
コードはこちら: https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar
これを機能させる方法についてのアイデアはありますか?
それを達成するために従うべきより良いアプローチがあります。そして、はるかに簡単です。
この方法論を使用して実装することで私が理解していること: https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBarは、タブ バーを非表示にしようとすると奇妙なことが起こるということです。だから私が見つけた最良の解決策(あなたと同じこと)はここにあります:http://www.lantean.co/display-a-modal-uiviewcontroller-when-a-uitabbaritem-is-pressed/
他に何もする必要はありません。UITabBarItem が関連付けられているビュー コントローラーを無視して、モーダル ビューを表示してください。それで全部です!
UITabBarController の独自のサブクラスを作成し、このメソッドを追加します。
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
}
どの項目が選択されたかを確認し、そこにモーダル VC をインスタンス化できます。
おそらく、メソッドでUITabBarDelegateを使用できます
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
。
誰かがタブ バーのボタンを押すと、メソッドがデリゲートに送信されます。そこで、それが正しいボタンかどうかを確認してから、モーダル ビュー コントローラーをインスタンス化できます。
サブクラス化またはデリゲートを使用して、選択した項目が中ボタンであるかどうかを簡単に確認できます。そうである場合は、以前に選択された項目をタブ バーで選択し、モデル ビュー コントローラーを提示します。元の選択が行われたのと同じ RunLoop ソース内でこれを行うため、タブの選択は、中間の VC に切り替えることなく効果的に元に戻されます。
あなたが提供したコードサンプルによると=> https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar
中央の隆起したタブ ボタンは UIButton であるため、そのボタンのアクションを BaseViewController.m クラスで次のように設定するだけです。
[button addTarget:self action:@selector(showmodalview) forControlEvents:UIControlEventTouchUpInside];
次に、showmodalview メソッドでこのコードを記述します =>
-(void)showmodalview
{
UIViewController *view1=[[UIViewController alloc] init]; // you can use any view controller instance you want ,this is just the example.
[self presentModalViewController:view1 animated:YES];
}