2012-03-08 10 views
1

は私が私のmyApp_AppDelegate.mでこれを持っているインタフェースには変更はありません。メソッドMAINVIEWが実行されますが

- (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」が表示されますが、検索バーのテキスト値は変更されません、私のアプリで私はテキストを設定することができますので、検索バーがうまくいきますv他のメソッドからalueが、メソッドがappDelgateから呼び出されたときにのみ、インターフェイスが「接続されていない」ように見える "

アイデア?私は想像することができます。

Thx!

答えて

0

あなたは次の操作を実行した場合:

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

mainVCのビューはまだロードされていない、とIBOutlet searchBarはまだnilです。

1

ビューコントローラを作成していますが、画面に配置していません。メインビューコントローラの既存のインスタンスを見つけたり、作成したインスタンスをWindowsのルートビューコントローラまたは類似のものとして設定して、画面上にプッシュする必要があります(詳細は言わないでください、私は恐れています)。

関連する問題