我正在尝试在应用程序进入前台时呈现模态视图控制器..这些是我的文件: AppDelegate.m:
#import "AppDelegate.h"
#import "MainViewController.h"
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[self.window makeKeyAndVisible];
MainViewController * vc = [[MainViewController alloc]init];
[vc myMethodHere];
}
MainViewController.h:
//[..]
-(void) myMethodHere;
MainViewController.m:
-(void)myMethodHere{
NSLog(@"myMethodHere Activated.");
TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];
[self presentModalViewController:tweetViewController animated:YES];
}
NSLog(@“myMethodHere Activated。”)工作..所以我无法理解为什么“presentModalViewController”没有!我应该编辑/添加什么?也许是延迟?谢谢你的帮助......
P.S。我知道我的英语太糟糕了。原谅我:)。
答案 0 :(得分:4)
我不会依赖你的app委托中的方法(即使它看起来像是显而易见的解决方案),因为它会在你的应用程序委托和视图控制器之间产生不必要的耦合。相反,您可以让MainViewController
收听UIApplicationDidBecomeActive
通知,并提供推文作曲家视图控制器以响应此通知。
首先,在-viewDidLoad
注册通知。
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethodHere) name:UIApplicationDidBecomeActiveNotification object:nil];
}
现在,当您的应用从后台返回时收到此通知,系统会调用myMethodHere
。
最后,请记得在视图卸载时将自己移除为观察者。
- (void)viewDidUnload
{
[super viewDidUnload];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
}