提出UIActivityViewController的问题

时间:2014-04-16 10:53:32

标签: ios uiactivityviewcontroller

我想在整个应用中提供共享屏幕。我正在使用UIActivityViewController来实现此目的。问题是,根据您在应用中的位置,当前的根视图控制器可以是UINavigationController(Case1)或UIViewController(Case2)。

我可以使用

呈现UIActivityViewController
[viewController presentViewController:viewController animated:YES completion:nil];

但是我必须在(Case1)中看到UIViewController的{​​{1}},在(Case2)中看到根视图控制器本身。

但是如何检测存在哪种根视图控制器&相应的代码?

感谢。

3 个答案:

答案 0 :(得分:0)

尝试:

UIViewController *root = [[[[[UIApplication sharedApplication] keyWindow] subviews] objectAtIndex:0] nextResponder];

然后:

if ([root isKindOfClass:[UINavigationController class]]) {
    // Navigation Controller
} else {
    // The other one
}

应该告诉你哪一个出现。

答案 1 :(得分:0)

使用上述方法检测UINavigationControler;

 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
//If this will be called it is a navigation controller
}

答案 2 :(得分:-1)

使用performselector启动和停止旋转活动指示器

此处AI是活动指示器变量名称

    [self performSelector:@selector(animateAI) withObject:self afterDelay:0.1];

    [self performSelector:@selector(stopAI) withObject:self afterDelay:0.9];

-(void)animateAI
{
    [AI startAnimating];

}

-(void)stopAI
{
   [AI stopAnimating];
}