我正在开发一个响应Parse推送通知的应用。在应用程序的某个时刻,我想按下另一个用户发送的推送通知,这应该将我重定向到我的TabBarController中的第三个ViewController(选项卡),我想在该选项卡中显示一个视图。
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if (!error && [PFUser currentUser]) {
//Display the TabBarController
UIViewController *controller = [[UIViewController alloc] init];
controller = [storyboard instantiateViewControllerWithIdentifier:@"TabBar"];
self.window.rootViewController = controller;
[self.window makeKeyAndVisible];
//Display the third tab
self.tabBarController = (TabBarViewController *)self.window.rootViewController;
self.tabBarController.delegate = (id)self;
self.tabBarController.selectedIndex = 2;
[self.tabBarController display];
}
else{
NSLog(@"%@", error);
}
}];
我正在查询向我发送通知的用户,在查询完成后,我想在我的TabBarContoller的ViewController中的Label中显示用户的用户名。 (但为了简单起见,我只是想在第三个标签中显示一个视图)。
我尝试在块之外执行相同的代码行并且它有效,但是出于某种原因,当我尝试在块内执行[self.tabBarController display]时,它不起作用。
我也尝试过:
__block TabBarViewController* blocksafeSelf = self.tabBarController;
....
....
[blocksafeSelf display];
但它没有用!
我一直在寻找如何解决它的几个小时!任何帮助将不胜感激。
答案 0 :(得分:1)
尝试放
dispatch_sync(dispatch_get_main_queue(), ^{
[self.tabBarController display];
});
在您的原始方法中,您似乎在后台线程上进行UI更新,这可能会导致奇怪的事情发生