0

タッチするとセルの 1 つをランダムに選択するボタンをテーブル ビューに作成するにはどうすればよいですか?

ランダムなセルを選択するコード部分ではなく、Round Rect Button とすべてを追加する方法を知っています。

ありがとう!

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        RecipeDetailViewController *destViewController = segue.destinationViewController;
        destViewController.recipe = [recipes objectAtIndex:indexPath.row];

        // Hide bottom tab bar in the detail view
        //   destViewController.hidesBottomBarWhenPushed = YES;
    }

コード

ここに画像の説明を入力

4

1 に答える 1

1

コメントで、36 セルのセクションが 1 つしかないと述べたように、こんにちは。を使用してrendom行を見つけますarc4random

indexPath次に、 from セクションと行をフェッチします。

それから電話するdidSelectRowAtIndexPath

ボタンクリックメソッドのコード全体は次のようになります....

int section = 0;
int row = arc4random() %35;
NSIndexPath * path = [NSIndexPath indexPathForRow:row inSection:section];
if ([self.yourTableView.delegate respondsToSelector:@selector(tableView:willSelectRowAtIndexPath:)]) {
    [self.yourTableView.delegate tableView:self.yourTableView willSelectRowAtIndexPath:path];
}

[self.yourTableView selectRowAtIndexPath:path animated:YES scrollPosition: UITableViewScrollPositionNone];    

if ([self.yourTableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) {
    [self.yourTableView.delegate tableView:self.yourTableView didSelectRowAtIndexPath:path];
}

次に実装didSelectRowAtIndexPath

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
     btn.tag = indexPath.row;
     [self performSegueWithIdentifier:@"showRecipeDetail" sender:btn];
}

に次のコードが記述されていることを確認してくださいviewDidLoad

self.yourTableView.delegate = self;
self.yourTableView.dataSource = self;

そしてprepareForSegue、以下のようにメソッドを変更します

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showRecipeDetail"]) {

        RecipeDetailViewController *destViewController = [segue destinationViewController];

        NSInteger tagIndex = [(UIButton *)sender tag];

        destViewController.recipe = [recipes objectAtIndex:tagIndex];
    }
}

これはきっとあなたを助けるでしょう.....

于 2013-07-08T07:35:47.067 に答える