【问题标题】:Loading new view from didReceiveLocalNotification从 didReceiveLocalNotification 加载新视图
【发布时间】:2012-01-15 20:32:20
【问题描述】:

我已经寻找了几个小时的解决方案,我的问题非常简单。 我有一个触发的本地通知,我想加载一个新视图以在触发通知并且用户单击“查看”按钮时向用户显示。 这可能吗?如果可以,我该怎么做?

提前致谢:)

【问题讨论】:

  • 只是为了确定:您希望在用户“接受”您的本地通知后显示您应用的特定视图,对吧?

标签: iphone view localnotification


【解决方案1】:

在您的 appDelegate 中输入以下代码:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notif {
// show your view here!}

当您的应用收到本地通知时调用此方法,您也可以在创建通知时使用“notif”对象存储有用的数据。

如果您有一个视图 MyView 并且它是 xib 文件(例如您将主视图设置为 MyView 类的 MyView.xib),您可以执行类似的操作来加载它

在 MyView.m 中添加一个类方法以从 xib 创建新视图:

+ (id) newMyView
{
    UINib *nib = [UINib nibWithNibName:@"MyView" bundle:nil];
    NSArray *nibArray = [nib instantiateWithOwner:self options:nil];
    MyView *me = [nibArray objectAtIndex: 0];
    return me;
}

然后在本地通知回调中你可以有类似的东西:

MyView *view = [MyView newMyView];
[self.window addSubView:view];

其中 window 是您通常在应用委托模板中拥有的属性。

【讨论】:

  • 感谢您的快速回答。我知道 appDelegate 中的 didReceiveLocalNotification。问题是我无法弄清楚如何从那里创建视图,甚至无法将视图切换到另一个视图。我知道我的解释很难理解。我不知道如何更好地描述我的问题。
  • 看编辑,希望这次我明白你需要什么... ;)
  • 这几乎是我需要的 :) 如果我没有视图的 nib 文件,我可以通过编程方式创建视图吗?如果我创建一个 xib,这段代码对我很有用,但是当我以编程方式执行它时呢?抱歉,我错过了那部分:p
  • 当然你可以通过编程来完成! XIB 方式可以让您更轻松地获得漂亮的视图,但一切都可以通过代码完成。只需记住将视图添加为子视图,就像我的最后一行代码一样;)
  • 非常感谢 :) 这非常有用!我试过了,效果很好!我真的太棒了! :)
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 2018-02-21
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
相关资源
最近更新 更多