iphone - iOS 如何告诉 App Delegate 从当前 View 呈现新 View

标签 iphone ios objective-c notifications appdelegate

我有一个 iPhone 应用程序,当用户当前未使用该应用程序时,它会接收通知。当用户单击通知时,由于打开通知而打开应用程序时,他们应该被带到一个新 View 。

我将用于从通知传递我的信息的 App Delegate 中的委托(delegate)方法是:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{

//Pass my data from JSON Payload in here

//Tell current view to go to new view

}

我相信对用户在退出应用程序之前与之交互的最后一个 View Controller 的引用将是一种解决方法并将对象存储在 NSUserDefaults 中。 .

任何关于我如何实现这一点的建议将不胜感激。

最佳答案

尝试使用 NSNotificationCenter :) 在应该完成推送的位置注册一个观察者,并从您的 appdelegate 发出通知。看看这个tutorial用于注册和射击;)

// AppDelegate
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{

    //Pass my data from JSON Payload in here
    NSObject *obj = myInformationForTheReciever;
    [[NSNotificationCenter defaultCenter] postNotificationName:@"goToView" object:obj];
}

-
// MyViewController
-(void)viewDidLoad
{
    [super viewDidLoad];
    // do your stuff

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

- (void)goToView:(NSNotification*)notification
{
    NSObject* myInformationForTheReciever = [notification object];
    // do stuff with that
}

关于iphone - iOS 如何告诉 App Delegate 从当前 View 呈现新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16443058/

相关文章:

ios - Xamarin 应用程序在设备上启动时崩溃,在模拟器中运行良好

iphone - 如何在更多部分获取 UITabBarItem 的标题?

ios - Objective C (iOS) 中的 VLA 可变长度数组,会发生什么?

ios - Firebase 回调不会触发

ios - 由于尝试写入我认为是可变字典的内容,当我重新进入 TableViewController 时崩溃

iphone - 用于在 Web View 中检查连接的简单警报 View

iphone - UISearchBar 在退出搜索模式时闪烁

ios - 自定义 UIPicker

ios - 在两点/触摸之间拉伸(stretch) SKSpriteNode

objective-c - 从概念上讲,这应该如何在 OOP 中构建?