gpt4 book ai didi

iphone - 在本地通知后呈现 UIViewController

转载 作者:行者123 更新时间:2023-12-03 19:35:02 24 4
gpt4 key购买 nike

application:didFinishLaunchingWithOptions: 中,我初始化了 UINavigationController。随后,我将 UINavigationController 添加到窗口:

[self.window addSubview:navigationController.view]

这一切都运行良好。现在,我向我的应用程序添加了本地通知,当用户响应通知时,我想呈现一个 UIViewController。所以我想我可以覆盖 application:didReceiveLocalNotification: 并在那里使用我的 navigationController:

[navigationController pushViewController:someVC animated:YES];

但是,这不起作用。我做了一些调试,注意到虽然 navigationController 不是 nil,但 navigationController.view 没有 super View ,所以我认为它没有被显示。

所以,我的问题是:我应该将 UIViewController 推送到哪里才能显示?

最佳答案

在您的 AppDelegate.h 中添加以下内容:

//Under where you have <UIKit/UIKit.h>
extern NSString *localReceived;

在您的 AppDelegate.m 中添加以下内容:

//All the way on top where you import your viewControllers
NSString *localReceived = @"localReceived";

在你的AppDelegate.m中的- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)localNotification;
方法添加以下内容:

        [[NSNotificationCenter defaultCenter] postNotificationName:localReceived object:self];

确保您的 viewController 是一个 navigationController

如果不是,请执行以下操作 -- 将这段代码添加到您的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions:

    UINavigationController *nvcontrol = [[UINavigationController alloc] initWithRootViewController:viewController];

[window addSubview:nvcontrol.view];
[window makeKeyAndVisible];

现在——在你的 viewController.m 中将其添加到你的 -viewDidLoad 函数中

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(localAction) name:localReceived object:nil];

创建一个 -(void) localAction 并在该方法中添加您的 navigationController 代码以推送到下一个 View Controller !

希望这对您有用。对我来说就像一个魅力

关于iphone - 在本地通知后呈现 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com