PresentViewController: анимацията не се показва на iPad

Интегрирам SLService за Twitter в приложение. Работи чудесно на iPhone, но изчезва на iPad.

Интегрирах в iPad:

  [actionSheet showFromRect:self.myRect inView:self.tableView animated:YES];

отколкото:

 [actionSheet showInView:[UIApplication sharedApplication].keyWindow];

Има ли подобен метод за iPad вместо presentViewContoller: Animated:?

    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    {
        SLComposeViewController *tweetSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeTwitter];
        [tweetSheet setInitialText:self.textForTweet];

        [self presentViewController:tweetSheet animated:YES completion:nil];
    } else [self displayAlertBoxWithTitle:@"Tweet Failed" message:@"Please try again later" cancelButton:@"Close"];
}

Трябва ли вместо това да използвам модален диалогов прозорец?


person PhillipOReilly    schedule 03.09.2015    source източник
comment
листът за действие не е ли отхвърлен от ios8 нататък?   -  person Saheb Roy    schedule 03.09.2015
comment
Да, UIActionSheets са остарели, но SLComposeViewController не е и това изглежда създава проблема.   -  person PhillipOReilly    schedule 03.09.2015
comment
Saheb, може би си на прав път. Намерихте отговора тук: stackoverflow.com/a/24854803/1422252   -  person PhillipOReilly    schedule 03.09.2015
comment
Знаех, че нещо е подозрително, когато видях лист с действия. Директното представяне на SLVC ще даде добре, но представянето му върху лист с действия няма   -  person Saheb Roy    schedule 03.09.2015


Отговори (1)


Първоначално пропуснах това съобщение за грешка:

Warning: Attempt to present <SLComposeViewController: 0x175d6560>  on <ScheduleTableViewController: 0x17538c20> which is already presenting (null)

Това ме доведе до обсъждане на същия проблем в различен контекст тук.

Проблемът е разрешен чрез предложено решение:

dispatch_async(dispatch_get_main_queue(), ^ {
            [self presentViewController:tweetSheet animated:YES completion:nil];
        });
person PhillipOReilly    schedule 03.09.2015