Метод MainView, вызываемый из AppDelegate, выполняется, но в интерфейсе нет изменений. - PullRequest
1 голос
/ 08 марта 2012

У меня есть это в моем myApp_AppDelegate.m:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

MainViewController *mainVC = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

    [mainVC someMethod];

    return YES;     }

А затем в моем MainViewController.m метод:

-(void) someMethod{
    searchBar.text = @"TEST";
    NSLog(@"TEST");
}

Когда я вызываю приложение, которое находится в фоновом режимеиспользуя схему URL, выполняется метод handleOpenURL приложения и тоже выполняется someMethod, я вижу в журнале консоли «TEST», но текстовое значение в моей панели поиска не изменяется, панель поиска работает хорошо, потому что в моем приложенииЯ могу установить текстовое значение из других методов, но только когда метод вызывается из appDelgate, интерфейс кажется «отключенным»

1008 * Любые идеи? Я могу представить, что мне не хватает чего-то очень простого.

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Вы создаете контроллер представления, но не выводите его на экран.Вам нужно либо найти свой существующий экземпляр контроллера основного вида, либо перенести тот, который вы только что сделали, на экран, установив его в качестве контроллера корневого представления Windows или аналогичного (боюсь, без подробностей, боюсь).

0 голосов
/ 08 марта 2012

Когда вы делаете следующее:

MainViewController *mainVC = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[mainVC someMethod];

Представление mainVC еще не загружено, и IBOutlet searchBar все еще nil.

...