Предупреждение: Попытайтесь представить, чей вид не входит в иерархию окон!
Да, я просмотрел другие вопросы и ответы перед тем, как опубликовать этот вопрос. Они не помогли мне решить эту проблему. Вот что я делаю. Я вызываю свой одноэлементный класс socialHelper, чтобы отобразить лист действий, где метод postToFacebook
- это вариант для выбора. При нажатии на это действие я получаю предупреждение выше, а postToFacebook
не отображается. Я вызываю это из UIViewController с UINavigationController
в качестве основного контроллера, а мой класс SocialHelper - NSOject
.
- (void)postToFacebook
{
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[slComposeViewController setInitialText:@"Building stairs? Checkout StairsPro on the app store!"];
[slComposeViewController addImage:[UIImage imageNamed:@"StairsIcon120x120.png"]];
[slComposeViewController addURL:[NSURL URLWithString:@"https://itunes.apple.com/us/app/stairs-pro/id477032819?ls=1&mt=8"]];
[self presentViewController:slComposeViewController animated:YES completion:nil];
// I've also tried this, which shows the post window, but after hitting cancel or post, my previous viewController is not the current viewController. So my navigation bar is gone and can't move around in my app.
// [[[[UIApplication sharedApplication]delegate]window]setRootViewController:slComposeViewController];
}else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No Facebook Account" message:@"No Facebook account has been configured. You can configure or create a Facebook account in settings." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
}
}
Я спрашиваю, как лучше всего отобразить slComposerViewController
в этом случае, а также как мы могли бы использовать параметр UIApplication
. Спасибо!
SocialHelper
действительно на экране? - person Paul.s   schedule 31.05.2014presentViewController:animated:completion:
необходимо вызывать из viewController, который в данный момент отображается на экране. ЕслиSocialHelper
не является представленным в настоящее время viewController, вам не следует вызывать для него этот метод. - person Paul.s   schedule 31.05.2014[[SocialHelper sharedInstance]shareActionSheet];
, который работает и показывает лист действий ... но как только нажимаю postToFacebook, я получаю предупреждение. Любые идеи? Я использую раскадровки для aboutView, если это важно. - person Jason   schedule 01.06.2014