0

私のアプリはARCを使用しており、私はそれを使用しないサードパーティのソフトウェアに問題があります。 ビルド段階で-fno-objc-arcを設定することで、それを乗り越えることができます。しかし、私は2回呼び出されるので、1つのViewControllerがppをクラッシュさせるという問題が残されています。私自身のテーブルビューには、私が説明しようリリースViewController

...

私はアーバン飛行船の店頭に持参行を選択します。 私が見る限り、モーダルウィンドウとして表示されます。 TableViewで選択したアイテムのDetailViewを直接指すTableViewです。私はそのアイテムを購入し、ダウンロードを開始します。 私はUrban Airshipの代理人を持っていて、アイテムが安全に電話で落ちているときに私のTableViewで教えてくれます。私[自己dismissModalViewControllerAnimated:はい];私の自身のTableViewのその代理人の終わりのUAStoreは私のTableViewを戻します。
すべて正常です。

購入する新しい製品を選択すると問題が発生します。 UA DetailViewへの道のりはありますが、「購入」ボタンを押すとアプリがクラッシュします。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<UAProductDetailViewController: 0x3a35e0>)' 

私には、UAProductDetailViewControllerがリリースされていないようです。 Urban Airshipのインプリメンテーションファイルはライブラリーに入っているので、調整することはできません。 私はここから抜け出すためにさまざまなことを試みました。

[[DataModel sharedModel] saveContext]; 
    [[self tableView] reloadData]; 

    // LessonListViewController *lessonListVC = [[LessonListViewController alloc] initWithNibName:@"LessonListView" bundle:nil]; 
    UserData *UserData_Array = [dm.UserData_Array objectAtIndex:0]; 
// lessonListVC.courseID = UserData_Array.current_levelName; 
// lessonListVC.lessonsArray = UserData_Array.current_level; 
    NSLog(@"Current level name:%@",UserData_Array.current_levelName); 
    NSLog(@"Lessons array:%@",UserData_Array.current_level); 

    // lessonListVC.navigationItem.hidesBackButton = YES; 

    // [self.navigationController popToViewController:lessonListVC animated:YES]; 
    // [UAProductDetailViewController removeFromParentViewController]; 
    self.tabBarController.tabBar.hidden = NO; 
    [self dismissModalViewControllerAnimated:YES]; 

しかしこれまでのところ何も働いていません。 うまくいけば誰かが私の多少の説明を追って髪を節約することができたらうれしいです。

* *私自身のTableViewに戻ると、UADetailViewsのviewDidUnloadのNSLog呼び出しが呼び出されません。

答えて

0

あなたが持つモーダルビューコントローラを閉じ、コードブロックを見て参考になる:あなたはデリゲートメソッドでそれを呼び出している場合以来、私にはかなり右を見ていない

[self dismissModalViewControllerAnimated:YES]; 

実装では、 "自己"はあなたのオブジェクトを参照します。デリゲートメソッドを使用してView Controllerへの参照を受け取っている場合は、これを使用してそのビューコントローラを閉じてみてください。独自のビューコントローラからそれを解任しようとすると、あなたはiOSの5.0を実行している場合は、むしろparentViewControllerよりpresentingViewController、例えばを使用して参照する必要があります。:

[[self presentingViewController] dismissModalViewControllerAnimated:YES]; 
1

答えは、あなたが同じインスタンスUAProductDetailViewController複数回のをプッシュしようとしているシステム

reason: 'Pushing the same view controller instance more than once is not supported' 

によってスローされた例外です。 新しいインスタンスを作成し、それをプッシュする必要があります。

+0

私はそれをどのように行うのですか? UAStoreFrontを呼び出すには、このコードを使用します。 '[UAStoreFront displayStoreFront:self withProductID:levelA1_1.lessonVideofile animated:YES];' – Jorgen

+0

あなたの状況の詳細はわかりませんが、ストーリーボードを使用していますか? [[UAProductDetailViewController alloc] initWithNibName:@ "YourNibName"]のような新しいインスタンスを作成できます。 – jbat100

+0

ストーリーボードを使用するのが好きですが、アプリをios4に見せておく必要があります。あなたの提案については、私はそのコードをどこに置くべきかわかりません。私はUAのNIBであるので、NIBの名前も持っていません。私はこれで本当に混乱しています。 – Jorgen

関連する問題