クラスtabBarControllerがあり、selectedIndexプロパティが変更されるたびにカスタムメソッドをトリガーしたいと思います。これをどのように達成するのですか?プロパティの変更についてメソッドをトリガーするにはどうすればよいですか?
これはtabBarControllerは時間のインスタンス内で宣言されている方法ですvarsは:タブのインデックスと呼び出したいメソッド、その結果を決定する
BaseViewController *tabBarController;
クラスtabBarControllerがあり、selectedIndexプロパティが変更されるたびにカスタムメソッドをトリガーしたいと思います。これをどのように達成するのですか?プロパティの変更についてメソッドをトリガーするにはどうすればよいですか?
これはtabBarControllerは時間のインスタンス内で宣言されている方法ですvarsは:タブのインデックスと呼び出したいメソッド、その結果を決定する
BaseViewController *tabBarController;
使用UITabBarの-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
方法を。
これは、Key-Value-Observingに最適な候補です。基本的には、値が変更されると、通知は発生し、変更の値を監視したいと定義したobservers
によって通知されます。オブザーバーと自分自身を確立してobserveValueForKeyPath:
メソッドを実装するときは、どのような方法ででも起動できます。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177-BCICJDHA最初の
少し手ごわいが、基本的に魔法正しく使用:
はここで良い出発点です。
編集:それは簡単だったとは思わなかったUITabBarController
。はい、デリゲートメソッドを使用します。 KVOはこのために不当です。
一般に、KVOは素晴らしいですが、デリゲートメソッドが利用可能な場合は、設定がはるかに簡単です。 – benzado
セッターを作成します。
- (void)setSelectedIndex:(NSInteger*)integer
{
// Do stuff
selectedIndex=integer;
// Or: [super setSelectedIndex:integer];
}
このセッターを使用するにはサブクラスを作成する必要がありますか?どこに行くの? – zakdances
使用delegate
方法-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
詳細キャブはこちらをご覧ください。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITabBarDelegate –
これは、実装するクラスのmファイルに入っていますか? UITabBarControllerDelegateプロトコル? – zakdances
はい、正確です。 – CodaFi