0
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
    // Handle the notificaton when the app is running

    NSLog(@"Recieved Notification %@",notif);

    NSLog(@"local notifications count = %d", [[[UIApplication sharedApplication] scheduledLocalNotifications] count]);


    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef =CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"everything9", CFSTR ("mp3"), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);



    [[NSNotificationCenter defaultCenter] postNotificationName:@"RELOAD_DATA"object:nil];

}

アプリケーションが到着したときに特定のビューをプッシュするためにここで何を実装できますか(たとえば、iPhoneがロックされているときにユーザーがアプリアイコンをスライドしたとき)...試し[self.navigationController pushViewController:CompletedViewController animated:YES];ていますが、エラーが発生します...特定のものはありますかどうすればいいの?多分でdidFinishLaunchingWithOptions

4

5 に答える 5

3

多分あなたはこれを呼ぶべきです

[_window.rootViewController pushViewController:CompletedViewControllerアニメーション:YES];

上記のコードは現在機能しません。代わりにこれを使用してみてください。

 //We take the rootViewController first which is expected to be a UINavigationController in your case
 UINavigationController *naviController = _window.rootViewController;  
 //We then call the push view controller code    
 [naviController pushViewController:CompletedViewController animated:YES];

これは、ストーリーボードを使用している場合に、AppDelegateから現在のナビゲーションコントローラーにプッシュする方法です。特に、ストーリーボードの開始点がナビゲーションコントローラーである場合。

于 2012-06-29T10:37:28.903 に答える
0

これはあなたのニーズに合うと思います。UINavigationController内部の使い方を教えてくれますAppDelegate。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-06-26T08:39:36.407 に答える
0

Xcodeの古いバージョンでは、アプリケーションの作成中にナビゲーションベースのアプリケーションを使用するオプションがあります。しかし、最新のXcode世代では、シングルビューベースまたはウィンドウベースのアプリケーションを作成できます。したがって、ナビゲーションコントローラーのプロパティを使用する場合は、UINavigationControllerのインスタンスを作成し、rootViewControllerを設定する必要があります。コードは次のとおりです。

appDelegate.h

@property (strong, nonatomic) UINavigationController *navigationController;

appDelegate.m

@implementation AppDelegate
@synthesize navigationController = _navigationController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

そのため、アプリケーション全体でナビゲーションプロパティを使用できます。

これはあなたに役立つかもしれないと思います。

于 2012-06-26T08:53:34.747 に答える
0

"[self.navigationController pushViewController:viewControllerアニメーション:YES];"

これは、AppDelegate.mから(つまり、didReceiveLocalNotificationから)使用できません。

didReceiveLocalNotificationの「self.pushViewController」を使用して1回試してください。

于 2012-06-26T11:35:13.907 に答える
0
if ([EntNotStrApp isEqualToString:@"1"])
{
    EntNotStrApp=@"0";

    UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

    UINavigationController *navController = (UINavigationController *)window.rootViewController;

    DumpFeed *dump = [storyboard instantiateViewControllerWithIdentifier:@"DumpFeed"];

    dump.isPushed=YES;

    dump.strUserId = appDelegate.strFriendid;


    [navController pushViewController:dump animated:YES];

}else
{
     [[iToast makeText:NotMess] show];
}
于 2015-02-03T06:26:50.910 に答える