Как представить модальный контроллер вида, когда приложение выходит на передний план? - PullRequest
1 голос
/ 10 декабря 2011

Я пытаюсь представить Modal View Controller, когда приложение входит на передний план. Это мои файлы: 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" не работает!Что я должен отредактировать / добавить?Может быть, задержка?Спасибо за вашу помощь ..

ps Я знаю, что мой английский отстой .. Прости меня:)

1 Ответ

4 голосов
/ 10 декабря 2011

Я бы не стал полагаться на методы в вашем делегате приложения для этого (даже если это кажется очевидным решением), потому что это создает ненужную связь между вашим делегатом приложения и контроллером представления.Вместо этого вы можете 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...