¿De quién es la vista que no está en el problema de la jerarquía de ventanas?

Advertencia: ¡Intente presentar en cuya vista no está en la jerarquía de la ventana!

Sí, he mirado las otras preguntas y respuestas antes de publicar esta pregunta. No me han ayudado a resolver esto. Esto es lo que estoy haciendo. Estoy llamando a mi clase socialHelper de singleton para mostrar una hoja de acción, dondepostToFacebook El método es una opción para seleccionar. Al hacer clic en esta acción, obtengo la Advertencia anterior y elpostToFacebook no se muestra Llamo a esto desde un UIViewController con elUINavigationController como el controlador principal, y mi clase SocialHelper es unNSOject.

- (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];
}
}

Entonces, lo que pregunto es cuál es la mejor manera de obtenerslComposerViewController para mostrar en este caso, también cómo podríamos usar elUIApplication opción también. ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta