我目前正在尝试从存储全局变量和全局函数的 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];
同样,也许有点晚了,可以帮助你,但它可能对其他人有用。
干杯!