菜鸟教程小白 发表于 2022-12-12 19:35:50

ios - 不能使用 TabBar 委托(delegate)方法


                                            <p><p>我有一个带有自定义 TabBarController 类的应用。</p>

<p>我尝试实现tabbar Controller 委托(delegate)方法:</p>

<pre><code>- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    NSLog(@&#34;%i&#34;,tabBarController.selectedIndex);
}
</code></pre>

<p>但它不起作用。为什么?</p>

<p>在 <code>ViewDidLoad</code> 我写:</p>

<pre><code>self.tabBarController.delegate = self;
</code></pre>

<p>我在 .h 中实现:</p>

<pre><code>@interface BaseViewController : UITabBarController &lt;UITabBarControllerDelegate&gt;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在你的自定义 TabBarController 中,不要使用</p>

<pre><code>self.tabBarController.delegate = self;
</code></pre>

<p>但是使用</p>

<pre><code>self.delegate = self;
</code></pre>

<p>.tabBarController 返回 ViewController 层次结构中最近的祖先,即标签栏 Controller ,但您的自定义 TabBarController 是您要定位的 Controller ,因此无需在其层次结构中搜索</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 不能使用 TabBar 委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9545126/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9545126/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 不能使用 TabBar 委托(delegate)方法