【问题标题】:Custom UIActivity displaying blank screen自定义 UIActivity 显示空白屏幕
【发布时间】:2015-03-28 08:29:13
【问题描述】:

我有一个自定义 UIActivity,它在调用方法 - (UIViewController *)activityViewController 时返回一个 UIViewController。但它在点击活动后最终显示一个空白的黑屏而不是 UIViewController。知道有什么问题吗?

这是我在自定义 UIActivity 中的代码:

- (void)prepareWithActivityItems:(NSArray *)activityItems
{

    self.vc = [[testaViewController alloc] init];
}

- (UIViewController *)activityViewController
{
    return self.vc;
}

【问题讨论】:

  • 发布自定义 UIActivity 的示例:stackoverflow.com/questions/12766300/…
  • 我假设您在 XIB 文件中设计了自定义视图?如果是这样,那么您需要调用 [[testaViewController alloc] initWithNibName:@"myNib" bundle:nil]; 因为它是您有一个没有与之关联的视图的视图控制器。
  • @pruinis 示例为方法 activityViewController 返回 nil
  • @RASS no ~ 我正在使用情节提要。
  • OK 如果activityViewController 方法返回nil,那么您需要检查您是否保留了视图控制器:即self.vc 是一个强引用。此外,即使您使用的是故事板,代码:[[testaViewController alloc] init]; 也会返回一个没有视图属性的新视图控制器实例。除非你重写了testaViewController 类中的init 方法来加载视图属性。

标签: ios objective-c uiactivityviewcontroller uiactivity


【解决方案1】:

我将代码更改为以下代码,现在可以使用了

- (void)prepareWithActivityItems:(NSArray *)activityItems
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"    bundle:[NSBundle mainBundle]];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"testaviewcontroller"];
    self.vc = vc;
}

- (UIViewController *)activityViewController
{
    return self.vc;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2015-10-03
    • 2020-07-17
    相关资源
    最近更新 更多