

現在、プッシュ通知で投げたURLを、AppDelegateで受け取って、WebViewで表示しようとしています。

なお、そのWebViewは、そのためだけに使うものではなく、別の場面でも使っているViewです。

具体的には、ニュースアプリのような感じで、まずタブがあり、それぞれのタブには記事のリストがあり、タップすると「DetailViewController」へ遷移します。このDetailViewControllerをそのまま利用したいと考えています。

別の書き方をすると、UITabBarControllerに、UINavigationControllerが乗っていて、そこへFirstViewController（記事リストページ）->
DetailViewController（記事閲覧ページ）へ遷移するという感じです。伝わりますでしょうか…。

ここから、本題になります。  
プッシュ通知で受け取ったURL（こちらは取得確認済み）を、AppDelegateからDetailViewControllerへ直接飛ばそうとしています。

コードは、AppDelegate.m内の「※追記3 ~~willFinishLaunchingWithOptions~~
」に、下記のような形で遷移を試みていますが、思ったように動作しておりません。

どなたか動くコードに心当たりのある方いらっしゃいませんでしょうか。よろしくお願いいたします。

[code]

    AppDelegate.m
    
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    FirstViewController *firstView = [storyboard instantiateViewControllerWithIdentifier:@"FirstView"];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:firstView];
    DetailViewController* detailView = [storyboard instantiateViewControllerWithIdentifier:@"DetailView"];
    detailView.URL = URL;
    [navigationController pushViewController:detailView animated:YES];
    
[/code]

**追記2**  
プッシュ通知に、Growth Pushというサービスを利用しています。  
プッシュ通知自体の実装は下記ページを参照しております。  
<http://growthhack.sirok.co.jp/growthpush/4371/>

**追記3**  
willFinishLaunchingWithOptionsに直接コードを書いた場合、実行されないとのことで、記述場所を変更いたしました。ですので、一旦アラートビューを出し「はい」を選択した場合に、DetailViewControllerに飛ぶように試みています。


CC BY-SA 3.0
2015-03-19T04:52:23.287
8095
2015-12-14T17:49:08.183
2015-03-19T06:46:53.420
8910
8910
question
ios objective-c
AppDelegate から ViewController へ UINavigationController を使って遷移したい


自己解決いたしました。  
AppDelegateで受け取ったURLを、そのままFirstViewControllerに渡して、そこを起点に遷移するだけでした。

それと、モーダルビューで表示されたのは、勘違いでした。UINavigationControllerに、self.window.rootViewControllerを入れていました。消すとモーダルビューも動きませんでした。


CC BY-SA 3.0
2015-03-19T08:40:07.997
8118
2015-03-19T08:40:07.997
8910
8095
answer