如何从通知观察者选择器

时间:2016-03-28 19:50:29

标签: objective-c uiviewcontroller notifications

我正在为我的应用程序实现会话不活动,例如当应用程序未被触摸30秒时,它应该在当前屏幕的顶部显示另一个屏幕,可以选择注销或继续。我已经实现了检测触摸的功能,并且在未触摸应用程序时能够创建通知。如果我在调用通知观察者时放置NSLog,一切都很好。但我不知道如何显示屏幕。

就像我在我的rootviewController类和ApplicationDidTimeout方法中发出通知一样,我试图执行不起作用的SegueWithIdentifier。我不明白。所以,我尝试了下面编写的代码,它加载了视图但我希望在Formsheet中查看,以便我可以在其他视图之上。

有人可以帮我这个,以便我可以在会话超时时在anyView上显示sessionView

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];    

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

- (void) applicationDidTimeout:(NSNotification *) notif
{
    NSLog(@"I m here");
    BCDSessionInactivityViewController *sessionView=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"InactivityViewController"];
     [[self topViewController] presentViewController:sessionView animated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

  

但我希望在Formsheet

中查看
BCDSessionInactivityViewController *sessionView=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"InactivityViewController"];
sessionView.modalPresentationStyle = UIModalPresentationFormSheet;
[[self topViewController] presentViewController:sessionView animated:YES completion:nil];