ios - 选择等于 0 时禁用右栏按钮

标签 ios tableview navbar

下面的代码大部分在选择项目时有效,条形按钮启用,但只要我取消选择 1 而说 3 仍然被选中,它就会禁用。

当计数达到 0 个所选项目时,如何使用以下代码禁用?

- (void)assetsTableViewCell:(WSAssetsTableViewCell *)cell didSelectAsset:(BOOL)selected atColumn:(NSUInteger)column
{
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

    // Calculate the index of the corresponding asset.
    NSUInteger assetIndex = indexPath.row * self.assetsPerRow + column;
    WSAssetWrapper *assetWrapper = [self.fetchedAssets objectAtIndex:assetIndex];
    assetWrapper.selected = selected;

    // Update the state object's selectedAssets.
    [self.assetPickerState changeSelectionState:selected forAsset:assetWrapper.asset];

    // Update navigation bar with selected count and limit variables
    dispatch_async(dispatch_get_main_queue(), ^{
        if (self.assetPickerState.selectionLimit) {
            self.navigationItem.title = [NSString stringWithFormat:@"%@ (%lu/%ld)", [self.assetsGroup valueForProperty:ALAssetsGroupPropertyName], (unsigned long)self.assetPickerState.selectedCount, (long)self.assetPickerState.selectionLimit];
        }
    });
}

以下是需要调整的内容。

if (selected == 1) {
    self.navigationItem.rightBarButtonItem.enabled = YES;
} else if (selected == 0) {
    self.navigationItem.rightBarButtonItem.enabled = NO;
}

最佳答案

selected 将为您提供当前 asset 的状态,因此检查它是不明智的。
我们需要检查一些全局的东西;基本上是检查以前的选择。

查看您的 navigationItem.title,似乎 assetPickerState.selectedCount 应该可以解决问题。

所以……也许是这个?? (不确定,但无论如何...)

if (self.assetPickerState.selectedCount == 0) {
    self.navigationItem.rightBarButtonItem.enabled = NO;
}
else {
    self.navigationItem.rightBarButtonItem.enabled = YES;
}

关于ios - 选择等于 0 时禁用右栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108359/

相关文章:

ios - 如何在 iPhone 应用程序中找到两个位置之间的方向?

ios - 防止 UILabel 本地化

Javafx TableView在表格自动刷新时仍然选择最后选择的行

iphone - NSArray 计数不起作用

html - Bootstrap 4导航栏和扩展问题

css - 为什么 Bootstrap 3 导航栏下拉菜单在 IE8 中不起作用?

html - Bootstrap 导航栏元素在较小的屏幕上未正确对齐

iphone - 仅是 HTML5 应用程序包装器的 native iPhone 应用程序是否支持应用程序内购买?

ios - 为支持所有方向的应用程序强制启动方向

iOS 禁用突出显示的 ImageView