2016-05-20 11 views
0

ユーザーは現在、Modallyで表示されたViewControllerにあります。UIAlertControllerアクションを使用してプログラムで埋め込みUIViewControllerにリンクする

UINavigationControllerに埋め込まれたUIViewControllerにプログラムでリンクするために、UIAlertViewControllerのOKボタンアクションをフックしようとしています。これは私の関連するコードの抜粋である

enter image description here :そう同様

ユーザーが購入を復元する(または成功します)基本的に

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { 

....// some code 

case .Restored: 

....// some code 
let alert = UIAlertController(title: "Thank You!", message: "You now have FULL ad-free Access", preferredStyle: UIAlertControllerStyle.Alert) 
let OKAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (action:UIAlertAction) in 
// Goto Main Page: 
let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("MainMainViewController"); 
self.navigationController?.presentViewController(vc, animated: true, completion: nil) 
} 
alert.addAction(OKAction) 
self.presentViewController(alert, animated: true, completion: nil) 

break; 

default: 
break; 
} 

、私はをクリックして、それらを希望しますOKを別のViewController - MainMainViewcontrollerに送信します。

しかし、OKボタンをクリックしても何も起こりません。

どこが間違っていますか?事前の種類拝啓/ Mesdamesで

感謝;)

+0

あなたのモーダル表示コントローラはナビゲーションコントローラに組み込まれていますか?そうでない場合、「navigationController」プロパティはnilに解決され、この点を超えて何も起こりません。プレゼンテーションラインをself.presentViewController(vc、animated:true、completed:nil)に編集してみてください。 –

+0

MainMainViewControllerはUINavigationControllerの中にあるので、UINavigationControllerのインスタントを作成し、それを提示してください。 – Amit89

+0

@ Amit89完璧!はい、NavControllerにViewControllerを保持してリンクする必要があるときに、埋め込みViewControllerにプログラム的にリンクしようとしていました。この週末はあなたに良さをあげることができます! –

答えて

1

はこのように書きます。

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { 

....// some code 

case .Restored: 

....// some code 
let alert = UIAlertController(title: "Thank You!", message: "You now have FULL ad-free Access", preferredStyle: UIAlertControllerStyle.Alert) 
let OKAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (action:UIAlertAction) in 
// Goto Main Page: 
let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let navVC = storyboard.instantiateViewControllerWithIdentifier("Navigation"); 
self.presentViewController(navVC, animated: true, completion: nil) 
} 
alert.addAction(OKAction) 
self.presentViewController(alert, animated: true, completion: nil) 

break; 

default: 
break; 
} 
+0

あなたを手伝って嬉しいです!あなたの週末をお楽しみください。 – Amit89

関連する問題