私は4つのタブを持つTabBarControllersのアプリを持っています。さて、私はこれをしなかったdidFinishLaunchingWithOptionsに:ViewControllerの名前を取得する
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 5.0;
lpgr.delegate = self;
[self.window addGestureRecognizer:lpgr];
[lpgr release];
この部分の作業と長押しジェスチャーは、すべての4つのタブに認識されています。今、ユーザーが現在押している現在のViewControllerの名前を渡したいので、長押しイベントを処理する関数で渡すことができます。
これは、AppControllerクラスではなくAppDelegateクラスのみを返します。私はすべてのViewControllerにNSStringFromClass([self class])を置くのではなく、appDelegateですべてをやりたい – Diffy
@Diffy下の1つを参照してください... !!!! – Kamarshad
@Diffy VCの各VCに対してパブリックメソッド(たとえば 'selectedViewControllerName:')を作成すると、選択したVCのメソッドを呼び出してVCの正しい名前を取得できます。 _ "すべてのViewControllerにNSStringFromClass([self class])を入れるのではなく、appDelegateですべてをやりたい" _もしそうなら、最初のものを使うだけで、選択したVCの 'TAG'をチェックすることで名前を返すことができます。 – Kjuly