【问题标题】:Activate Activity Indicator On View Controller From NSObject class从 NSObject 类激活视图控制器上的活动指示器
【发布时间】:2014-12-15 22:14:57
【问题描述】:

我目前正在尝试从存储全局变量和全局函数的 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];

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

【问题讨论】:

  • 如果始终是同一个视图控制器,请将指向视图控制器的指针存储在全局对象/静态变量中。你这样做的方式是创建一个新的视图控制器,它甚至不在视图层次结构中。
  • 嗨,马库斯,我不明白。你能解释一下吗?干杯
  • NSObject中那个函数是怎么调用的,是怎么实现的,能详细点吗?
  • @MidhunMP 我用更多信息编辑我的问题。
  • 有人吗?那时我可能不得不放弃这个想法。

标签: ios xcode activity-indicator


【解决方案1】:

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

如果您已将视图控制器嵌入到导航控制器中,您可以尝试的一种方法是识别堆栈上的顶部视图控制器并从那里呈现活动视图控制器。

例如:

// 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];

再说一次,可能有点晚了,但它可能对其他人有用。

干杯!

【讨论】:

  • 我会试试这个并报告。
猜你喜欢
  • 2016-06-25
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多