我有一个简单的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;
}
}];
}
一切正常但是当应用程序第一次打开时,右侧是空的,点击“共享”按钮会导致崩溃。
当右视图控制器为空时我如何隐藏条形按钮?只有当视图控制器中有内容时才显示条形按钮项?
提前致谢。
答案 0 :(得分:1)
我不知道是否有办法“隐藏”它,但是当你第一次在viewDidLoad中创建按钮时,你可以将其enabled属性设置为NO。或者,您可以延迟创建,直到您更新右侧的详细信息。
然后如何启用或创建它取决于您正在做什么来更新右侧。一种常见的方法是覆盖您在进行更新时设置值的设置器。例如,如果您设置名为detailString的字符串属性的值,则可以执行以下操作:
-(void)setDetailString:(NSString *) newString {
_detailString = newString;
self.navigationItem.rightBarButtonItem.enabled = YES;
}