菜鸟教程小白 发表于 2022-12-13 14:54:34

ios - 在 Objective-C 中使用 block 传递数据


                                            <p><p>我有两个 ViewController ,分别是 ViewControllerA 和 ViewControllerB。</p>

<p>在 ViewcontrollerB 上有 tableview 单元格。单击表格 View 单元格时,我想将在 ViewControllerB 上选择的数据发送到 ViewControllerA 上的标签。</p>

<p>我知道它可以通过多种方式实现,但是如何通过 block 来实现。请建议。</p>

<p>提前致谢!</p>

<p> ViewControllerB</p>

<pre><code>-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *viewArr = ;

    NSLog(@&#34;the value obtained on cell is %@&#34;,viewArr);
    ViewController *vc=[init];
    vc.aSimpleBlock(viewArr);   
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><strong>在您的 ViewController A 中</strong> </p>

<p><strong>1)</strong> 为 block 声明一个 typedef 说 <code>typedef void (^simpleBlock)(NSString*);</code></p>

<p><strong>2)</strong> 创建一个像 </p> 这样的 block 变量

<pre><code>@property(nonatomic,strong)simpleBlockaSimpleBlock;
</code></pre>

<p><strong>3)</strong>在viewDidAppear/viewDidLoad中定义这个 block </p>

<pre><code>aSimpleBlock = ^(NSString* str){
      NSLog(@&#34;Str is the string passed on tableView Cell Click..!!&#34;);
    };
</code></pre>

<p><strong>在你的 ViewController B 你有 tableView 的地方</strong></p>

<p><strong>1)</strong> 在 <code>-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath</code></p>

<p>只需将您的 <code>block</code> 称为 </p>

<pre><code>your_VC_A_Object.aSimpleBlock(&#34;Your_Label_String_here&#34;);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 Objective-C 中使用 block 传递数据,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42384215/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42384215/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 Objective-C 中使用 block 传递数据