菜鸟教程小白 发表于 2022-12-13 02:26:06

iOS:键值观察不会关闭模态视图


                                            <p><p>我在模态视图中有以下键值观察器方法:</p>

<pre><code>- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if () {
    NSLog(@&#34;UploadVC hears upload complete&#34;);
    ;
}
}
</code></pre>

<p>我用它来观看照片对象并知道它何时完成上传。当我运行它时,它的行为与预期一样,并且控制台记录“UploadVC 听到上传完成” - 但随后未执行以下行 - 模态不会被解除。</p>

<p>没有错误或其他任何东西, View 只是坐在那里,模态永远不会被解雇。这是怎么回事?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>当您在后台线程上收到 KVO 通知时可能会发生这种情况,因此尝试更新 UI 可能会导致任何意外行为(UI 未更改、延迟后更改、应用程序崩溃等)。确保在主线程上调用所有更新 UI 代码:</p>

<pre><code>- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if () {
   NSLog(@&#34;UploadVC hears upload complete&#34;);
   dispatch_async(dispatch_get_main_queue(), ^{
         ;
   });

}
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS:键值观察不会关闭模态视图,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16240316/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16240316/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS:键值观察不会关闭模态视图