0

我有一个简单的 iPad 项目,其视图有两个容器。选择左侧的条目后,右侧会更新其详细信息。右视图控制器在工具栏上也有 UIBarButtonItem,它使用 UIActivityController 在不同的社交网络上共享其内容。该按钮与 IBAction 连接如下:

-(IBAction)Share:(id)sender
{    
    NSArray *activityItems = @[self.title, urlString];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:activityVC animated:YES completion:nil];

    [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed)
     {
         NSLog(@"Activity = %@",activityType);
         NSLog(@"Completed Status = %d",completed);

         if (completed)
         {
             UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Successfully Shared" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
             [objalert show];
             objalert = nil;
         } else
         {
             UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Unable To Share" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
             [objalert show];
             objalert = nil;
         }
     }];
}

一切正常,但是当应用程序第一次打开时,右侧是空的,点击共享按钮会导致崩溃。

当右视图控制器为空并且仅当视图控制器中有内容时才出现条形按钮项时,如何隐藏条形按钮?

提前致谢。

4

1 回答 1

1

我不知道是否有办法“隐藏”它,但是当您第一次在 viewDidLoad 中创建按钮时,您可以将其启用属性设置为 NO。或者,您可以延迟它的创建,直到您使用详细信息更新右侧。

然后如何启用或创建它,取决于您更新右侧的操作。一种常见的方法是在进行更新时覆盖您正在设置的值的设置器。例如,如果您正在设置一个名为 detailString 的字符串属性的值,您可以这样做:

-(void)setDetailString:(NSString *) newString {
    _detailString = newString;
    self.navigationItem.rightBarButtonItem.enabled = YES;
}
于 2013-05-08T23:47:34.990 回答