菜鸟教程小白 发表于 2022-12-12 18:56:48

iOS:通过单元格上的按钮操作将对象传递给自定义 UITableViewCell 到 UIViewController


                                            <p><p>我有一个自定义的 <code>UITableViewCell</code>,上面有一个按钮,IB 链接到一个名为:</p>

<pre><code>- (IBAction)clickUse:(id)sender;
</code></pre>

<p>在这个函数中,我打算将一个对象从 <code>UITableView</code> 的数据源(<code>NSMutableArray</code> 中的一个对象)传递给下一个 <code>UIViewController</code> , 当用户点击 <code>UITableViewCell</code> 上的按钮时。</p>

<p>我在自定义<code>UITableViewCell</code>中设置了一个属性,像这样:</p>

<pre><code>@property (nonatomic, retain) SomeObject *some_object;
</code></pre>

<p>在 <code>UITableView</code> 的 <code>cellForRowAtIndexPath</code> 函数中,我将对象传递给单元格:</p>

<pre><code>MyCustomCell *cell = (MyCustomCell *);
cell.some_object = ;
</code></pre>

<p>此时我跟踪对象,它仍然在这里。但在 <code>MyCustomCell</code> 单元格中,该对象已消失并分配给 <code>nil</code>。因此,无法将该对象传递给下一个<code>UIViewController</code>。</p>

<p>我错过了什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>也许使用不同的方法会更好。您可以给每个单元格按钮一个标签。标签值可以是行索引路径。</p>

<p>您的 <strong>-tableView:cellForRowAtIndexPath:</strong> 方法可能包括以下内容:</p>

<pre><code>MyCustomCell *cell = (MyCustomCell *);
cell.button.tag = indexPath.row
</code></pre>

<p>您的 <strong>-clickUse:</strong> 方法可能如下所示:</p>

<pre><code>- (IBAction)clickUse:(id)sender
{
    UIButton *button = (UIButton *)sender;
    SomeObject *object = ;

    // do stuff with your object on click
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS:通过单元格上的按钮操作将对象传递给自定义 UITableViewCell 到 UIViewController,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/8908649/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/8908649/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS:通过单元格上的按钮操作将对象传递给自定义 UITableViewCell 到 UIViewController