2017-04-27 2 views
0

私はシングルトンを持っており、その中に複数のviewcontrollersで使用されるカスタムメソッドを作成します。この方法は電子メールコンポーザーを表示することです。グローバルメソッドでデリゲートを割り当てることができません

私がすることによってこれを呼び出す他のviewcontrollersで
-(void)emailSend:(NSString*)bodyStr inVC:(UIViewController*)vc { 

    if ([MFMailComposeViewController canSendMail]) { 

     NSString *messageBody = bodyStr; 
     MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
     mc.mailComposeDelegate = vc; // <-- warning 
     [mc setSubject:@"Say Hello"]; 
     [vc presentViewController:mc animated:YES completion:NULL]; 
    }else{ 

     // Not setup 
    } 

} 

:警告メッセージは、互換性のない 型のUIViewControllerから

ID __Nullableに割り当てている

[[MySingle singleton] emailSend:@"Testing" inVc:self]; 

* __強い

どれでもそれを動作させる方法?

+0

こんにちは親愛なる、缶Yこれを試してみてください:__weak typeof(self)weakSelf = self; [[MySingle singleton] emailSend:@ "テスト" inVc:weakSelf]; ** OR **自分自身をクラス名に置き換えてください(強く弱い方で試してください) – ajjjjjjjj

+0

VCにデリゲートを追加する必要があります。 クラスMyVC: SeanLintern88

+1

変更:** nVC:(id)vc **。 – KKRocks

答えて

1

あなたはあなたの方法にいくつかの変更を行う必要があります。

から:

- (無効)emailSend:(NSStringの*)bodyStr INVC:(のUIViewController *)VC

へ:

- (ボイド)emailSend:(NSStringの*)bodyStr INVC:(ID)VC

関連する問題