2014-02-21 65 views
1

這裏呈現SLCompose視圖控制器是我的代碼:如何從NSObject類

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
{ 
    SLComposeViewController *viewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; //Tell him with what social platform to use it, e.g. facebook or twitter 

    [viewController setInitialText:sQuotes]; 

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate.navController presentViewController:viewController animated:YES completion:nil]; 


    [viewController setCompletionHandler:^(SLComposeViewControllerResult result) 
    { 
     NSString *output; 
     switch (result) 
     { 
      case SLComposeViewControllerResultCancelled: 
       output = @"Action Cancelled"; 
       break; 
      case SLComposeViewControllerResultDone: 
      { 
       output = @"Post Successfull"; 

      } 
       break; 
      default: 
       break; 
     } 

     [appDelegate.navController dismissViewControllerAnimated:YES completion:nil]; 
    }]; 
} 

,但它顯示的警告

上,其觀點是不是在窗口層次!

回答

1

警告很清楚。您試圖通過不在窗口層次結構中的視圖呈現模態視圖,這將無法工作。

嘗試修改此[appDelegate.navController presentViewController:viewController animated:YES completion:nil];

到這樣的事情,而不是:

[appDelegate.window.rootViewController presentViewController:viewController animated:YES completion:nil];

這保證了您的應用程序的當前活動的根視圖控制器將是一個展示模態視圖控制器。

取決於你的AppDelegate是如何構建的,你可能需要添加一個屬性或者只是一個吸氣劑來將window變量顯示給外界。

+0

非常感謝Dima :) –

相關問題