【问题标题】:TabBarController setSelectedIndex - Which delegate method will be calledTabBarController setSelectedIndex - 将调用哪个委托方法
【发布时间】:2012-08-12 19:21:26
【问题描述】:

我想知道我们何时为 uitabbbarviewcontroller 设置 setSelectedIndex, 将调用哪个委托方法。

在我的应用程序中,我有要购买的歌曲列表。当用户点击任何歌曲的购买按钮时,我将显示下载选项卡。为此我正在设置 [self.tabBarController setSelectedIndex:3];there 我正在显示歌曲详细信息和进度视图,说明如何很多是downaloded等。

这很好。在下载诗歌的同时,用户可以去点击购买另一首诗歌。 在这里我想重新加载 tableview。但我不知道应该在哪个委托方法中调用 tableview 的重新加载数据。

我尝试了 viewwillappear 和 viewdidappear。但这些没有被调用。 所以请告诉我将调用哪个委托方法。

非常感谢

【问题讨论】:

    标签: iphone ios ios4 uitabbarcontroller


    【解决方案1】:

    覆盖 UITabBarController setSelectedIndex:

    -(void)setSelectedIndex:(NSUInteger)selectedIndex
    {
        //must call super function. 
        [super setSelectedIndex:selectedIndex];
    
        [self myMethod];
    }
    
    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {
        [self myMethod];
    }
    

    【讨论】:

      【解决方案2】:
      - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
      

      仅在用户点击它时调用,当您以编程方式设置它时,它不会被调用。 您可以在以编程方式执行自定义委托方法或通知后立即触发并执行您需要执行的任何操作...

      【讨论】:

      • 为什么不调用 heck 委托方法?有什么理由吗?
      • 当你设置它时......你可以在调用 delgate 方法时做任何你想做的事情......所以你可以在你以编程方式设置它的地方做它。
      • 这就是我所说的不叫它。我已经提出了查询,请参阅此以获取更多信息stackoverflow.com/questions/15278537/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      相关资源
      最近更新 更多