2

コードでアクティブになっている UIViewController シーンを確認することはできますか?

アプリにプッシュ通知が届き、ユーザーがどのビューにいるかに応じて、次のようにさまざまなことをしたいと考えています。

AppDelegate:

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
    if (tableViewController == active) 
       //get data from server
    else if (detailedViewController == active) 
        //Get Image from server
}

ありがとう

4

3 に答える 3

3

ローカル通知を投稿する:

  [NSNotificationCenter defaultCenter] postNotificationName:@"foo" object:whatever];

そして、適切なすべてのviewControllersがそれを監視するようにします:

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(handleFoo:) 
                                             name:@"foo" 
                                           object:nil];

viewController は、必要に応じて Observer を追加または削除します。

于 2012-04-26T12:09:17.127 に答える
2
if ( _viewController.isViewLoaded == YES)
{
    NSLog(@"Yes");

}
else
{
    NSLog(@"No");
}

うまくいけば、これはあなたを助けるでしょう...

于 2012-04-26T12:10:10.710 に答える
1

さて、あなたはいくつかのcontaneir View Controllerを使用したと思います。を使用している場合は、UITabBarController次のように自分自身に尋ねることができます。

@property(nonatomic, assign) UIViewController *selectedViewController

またはその:

@property(nonatomic) NSUInteger selectedIndex

を使用している場合UINavigationController:

@property(nonatomic, readonly, retain) UIViewController *visibleViewController

コンテナを細かく制御したい場合は、Appdelegate をそれぞれのデリゲート プロトコルに準拠させることができますUITabbarControllerDelegateUINavigationControllerDelegate

于 2012-04-26T12:19:52.193 に答える