从 NSObject 类激活视图控制器上的活动指示器



我目前正在尝试从存储全局变量和全局函数的 NSOBject 类激活视图控制器上的"活动指示器"。

我在下面整理了这段代码,它位于 NSObject 类函数中。当我点击该功能时,视图上的活动指示器不会动画。请帮忙。

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"Main"
                                              bundle:nil];
ScreenUIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ScreenUIViewController"];
[vc.activeDisplay startAnimating];

在我的 NSObject 类中,我在 .h 文件中声明了如下函数

+ (GlobalTest*)sharedGlobalTest;
// global function
- (void) testFunction;

在我的 NSObject 和 .m 文件中,我有

-(void)testFunction
{
NSLog(@"testFunction RAN!!");
UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"Main"
                                              bundle:nil];
ScreenUIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ScreenUIViewController"];
[vc.activeDisplay startAnimating];
}

我在视图控制器中调用它

[[GlobalTest sharedGlobalTest] testFunction];

函数运行,但活动指示器不显示

游戏有点晚了,但我想我会提供一个建议。

如果已将视图控制器

嵌入到导航控制器中,则可以尝试一种方法是识别堆栈上的顶部视图控制器,并从那里显示活动视图控制器。

例如:

// Get the current view controller
UIViewController *currentVc = [(UINavigationController *)[UIApplication sharedApplication].delegate.window.rootViewController topViewController];
// Alloc and init your activity view controller
NSArray *activityItems = @[Item1, Item2, Item3, Etc.];
UIActivityViewController *activityVc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVc.excludedActivityTypes = @[ExcludedItem1, ExcludedItem2, Etc.];
// Present the activity view controller from the current view controller
[currentVc presentViewController:activityVc animated:YES completion:nil];

同样,也许有点晚了,可以帮助你,但它可能对其他人有用。

干杯!

最新更新