Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 呈现UIActivityViewController的问题_Ios_Uiactivityviewcontroller - Fatal编程技术网

Ios 呈现UIActivityViewController的问题

Ios 呈现UIActivityViewController的问题,ios,uiactivityviewcontroller,Ios,Uiactivityviewcontroller,我想在我的应用程序中提供一个共享屏幕。为此,我正在使用UIActivityViewController。问题是,根据您在应用程序中的位置,当前根视图控制器可以是UINavigationControllerCase1或UIViewControllerCase2 我可以使用 但我必须在案例1中获取当前可见的UINavigationController的UIViewController,在案例2中获取根视图控制器本身 但是如何检测存在哪种根视图控制器&相应地编码 谢谢。试试: UIViewContro

我想在我的应用程序中提供一个共享屏幕。为此,我正在使用UIActivityViewController。问题是,根据您在应用程序中的位置,当前根视图控制器可以是UINavigationControllerCase1或UIViewControllerCase2

我可以使用

但我必须在案例1中获取当前可见的UINavigationController的UIViewController,在案例2中获取根视图控制器本身

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

谢谢。

试试:

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

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

这将告诉您显示的是哪一个。

使用上述方法检测UINavigationController

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

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

这里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];
}

使用[root presentViewController:viewController animated:YES completion:nil]会发出错误警告:尝试显示已显示的VC,这是因为您在取消VC后过早显示VC。在完成处理程序中放入前一个的解雇,完成后,提交新的。对不起,我没有理解你的意思。我正在UINavigationController上以模块方式演示UIViewController。然后用户点击一个我称之为UIActivityViewController的按钮。因此似乎没有转换isuues,因为它已经完成了。关键是,我发布的代码不是导致错误弹出的问题。出现错误的原因有很多——过渡错误、iActions链接错误或模态VC呈现错误,例如呈现两次。您是否使用pushViewController:animated with UINavigationController来显示UIViewController?也许我错过了什么。当您说根视图控制器本身时,您是说导航控制器将被删除附加到keyWindow的视图层次结构吗?问题是关于UIActivityViewController的。您正在谈论UIActivityIndicatorView。不同的东西。
    [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];
}