ios - 不能使用 TabBar 委托(delegate)方法
<p><p>我有一个带有自定义 TabBarController 类的应用。</p>
<p>我尝试实现tabbar Controller 委托(delegate)方法:</p>
<pre><code>- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"%i",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 <UITabBarControllerDelegate>
</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]