菜鸟教程小白 发表于 2022-12-11 17:23:08

ios - 从 MM 抽屉 Controller 退出左 View Controller


                                            <p><p>我正在使用 <code>MMDrawerController</code>。我使用 <code>LeftViewController</code> 中的 <code>TableView</code> 在自定义单元格中显示我的数据。 </p>

<p><code>LeftViewController</code> 当我单击条形按钮时从左侧滑出。 </p>

<p>单击我的 <code>TableView</code> 的自定义单元格后,我想从 <code>LeftViewController</code> 重定向到其他 <code>ViewControler</code>。 </p>

<p>在我的 <code>LeftViewController</code> 我使用下面的代码</p>

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

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSIndexPath *path = ;
    ViewController *VC = (ViewController *);

}
</code></pre>

<p>注意:<code>CenterViewController</code>是<code>ViewController</code></p>的<code>Storyboard</code> ID

<p>通过使用上面的代码,<code>ViewController</code> 出现在 <code>LeftViewController</code> 的顶部,但我想关闭 <code>LeftViewController</code> 并重定向到 <code>ViewController</code></p>

<p> <img src="/image/KSm7L.jpg" alt="My Storyboard"/> </p>

<p>我使用了下面的代码,虽然它可以工作,但是在 <code>ViewController</code></p> 上左右滑动不起作用

<pre><code>-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ViewController *ggg = ;
      UINavigationController *navcon = [ initWithRootViewController:ggg];
    AppDelegate *app =[ delegate];
    app.window.rootViewController = navcon;
    ;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为您有以下选择:</p>

<ol>
<li>在<code>CenterViewController</code>中实现<code>UITableViewDelegate</code>,并将<code>CenterViewController</code>实例赋值为<code>中<code>UITableView</code>的委托(delegate)>LeftViewController</code>.</li>
<li>为 <code>LeftViewController</code> 创建一个 <em>delegate</em>,这样您就可以将 <code>UITableViewDelegate</code> 的逻辑保留在 <code>LeftViewController</code> 中并实现<code>CenterViewController</code> 中的新委托(delegate)并将其分配为 <code>LeftViewController</code> 的委托(delegate)。</li>
<li>使用<code>NSNotificationCenter</code>在用户选择<code>LeftViewController</code>的<code>UITableView</code>中的某项并添加<code>CenterViewController</code>时发布通知> 作为通知的观察者。</li>
</ol>

<p><strong>更新 1</strong></p>

<p>您好,在代码中,我看到您正在分配一个新的 rootViewController,可能会用您自己的 ViewControler 替换 MMDrawerController 的实例,因此您松开了滑动手势。</p>

<p>也许您唯一需要的是将中心 Controller 分配给 MMDrawerController 调用 <code>setCenterViewController:</code></p>

<p>而不是</p>

<pre><code>app.window.rootViewController = navcon;
</code></pre>

<p>使用</p>

<pre><code>;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从 MM 抽屉 Controller 退出左 ViewController ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39183499/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39183499/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从 MM 抽屉 Controller 退出左 View Controller