菜鸟教程小白 发表于 2022-12-12 09:44:35

ios - DismissViewcontroller 后方法不刷新数据


                                            <p><p>我正在开发 iPhone 应用程序,但我曾一度陷入困境。</p>

<p>我面临的错误是,我在 <code>FirstViewController</code> 中有一个表格 View ,单击单元格我在 <code>SecondViewController</code> 上呈现 <code>SecondViewController</code> 我有一个按钮,在单击该按钮时,我将关闭我的 presentViewController 并再次返回到 <code>FirstViewController</code> 上的 <code>FirstViewController</code> 我正在调用一个方法,该方法被成功调用但它不执行该方法的内部任务,(意味着我想重新加载我的表格 View 它不会重新加载我的表格 View ,我想更改该页面的标题文本但它不会改变)</p>

<p>这是我的代码片段:</p>

<p><code>FirstViewController:</code> </p>

<pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    SecondViewController *Obj= [ init];
    ;
}
</code></pre>

<p><code>SecondViewController 上的代码:</code></p>

<pre><code>- (IBAction)ButtonClick:(id)sender {

    FirstViewController *Obj=[ init];

    ;

    ;

}
</code></pre>

<p><code>关闭 SecondViewController 后,FirstViewController 上的代码</code></p>

<pre><code>-(void) MethodCall
{
    NSLog(@&#34; -- MethodCall Success --&#34;);
    self.title=@&#34;From back&#34;;
    ;
}
</code></pre>

<p>我的日志显示 -- MethodCall Success -- 但它既没有重新加载我的 tableview 也没有更改 FirstViewController 的标题。</p>

<p>我在哪里做错了?</p>

<p><strong>请帮助并感谢您的阅读。</strong></p>

<p><strong>新编辑:</strong></p>

<p><code>FirstViewController 上的代码:</code> </p>

<pre><code>-(void)viewWillAppear:(BOOL)animated{
    ;
    [ addObserver:self selector:@selector(tableReload) name:@&#34;tableReload&#34; object:nil];
}

-(void)viewWillDisappear:(BOOL)animated{
    ;
    [removeObserver:self name:@&#34;tableReload&#34; object:nil];
}

-(void)tableReload{
    NSLog(@&#34;-- FromSeeMore PushAndShowMerchants -- = %@&#34;,FromSeeMore);

    ;

}
</code></pre>

<p><code>SecondViewController 上的代码:</code> </p>

<pre><code>- (IBAction)SeemoreClick:(id)sender {

    [ postNotificationName:@&#34;tableReload&#34; object:nil];

    ;

}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>试试这个:-</p>

<p>在<strong>FirstViewController</strong></p>中

<pre><code>-(void)viewWillAppear:(BOOL)animated{
;
[ addObserver:self selector:@selector(tableReload) name:@&#34;tableReload&#34; object:nil];
}

-(void)viewWillDisappear:(BOOL)animated{
;
[removeObserver:self name:@&#34;tableReload&#34; object:nil];
}

-(void)tableReload{
self.tableView.delegate=self;
self.tableView.dataSource=self;
;
self.title=@&#34;From back&#34;;
}
</code></pre>

<p>在<strong>SecondViewController</strong>上:</p>

<pre><code>- (IBAction)ButtonClick:(id)sender {
[ postNotificationName:@&#34;tableReload&#34; object:nil];
;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - DismissViewcontroller 后方法不刷新数据,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23541899/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23541899/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - DismissViewcontroller 后方法不刷新数据