我試圖在推特發佈成功完成後呈現模態視圖;然而,我無法展示我的控制器,因爲SLComposeViewController仍在呈現。是否有一些完成方法會在所有事件都發生競爭並且視圖被解散時調用?當前視圖控制器完成Twitter的呼叫
SLComposeViewController* tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
tweetSheet.completionHandler = ^(SLComposeViewControllerResult result){
UBSTwitterSuccessViewController* twitterView;
switch(result){
case SLComposeViewControllerResultCancelled:
break;
case SLComposeViewControllerResultDone:
twitterView = [[UBSTwitterSuccessViewController alloc]initWithNibName:XIBTWITTERSUCCESS bundle:nil];
[self presentViewController:twitterView animated:YES completion:nil];
break;
}
};
[tweetSheet setInitialText:@"Check out this cool thing"];
[tweetSheet addURL: [NSURL URLWithString:@"http://www.cad-comic.com/"]];
[self presentViewController:tweetSheet animated:NO completion:nil];
沒有呈現視圖警告:
Warning: Attempt to present <UBSTwitterSuccessViewController: 0x16569b70> on <UINavigationController: 0x1663bd30> which is already presenting <SLComposeViewController: 0x166b1170>
我使用completionHandler,但問題是,SLComposeViewController仍然被提出時,完成處理器上運行,所以提出另一種看法控制器出現故障。 – steventnorris 2014-09-03 14:08:54
你必須首先關閉'tweetSheet'。 'case SLComposeViewControllerResultDone: [self dismissViewControllerAnimated:YES completion:^ {0} {[UBSTwitterSuccessViewController alloc] initWithNibName:XIBTWITTERSUCCESS bundle:nil]; [self presentViewController:twitterView animated:YES completion:nil]; }];' – 2014-09-03 16:12:33
「在iOS 7及更高版本中,當使用iOS 7或更高版本的SDK編譯時,您不得在完成處理程序中關閉SLComposeViewController,系統將自動執行此操作。我正在爲iOS 7編碼。 – steventnorris 2014-09-03 17:28:38