【问题标题】:Make a delegate for my TabBar in AppDelegate using XCode 4 with storyboard使用带有情节提要的 XCode 4 在 AppDelegate 中为我的 TabBar 创建一个代表
【发布时间】:2012-07-22 14:53:17
【问题描述】:

我正在制作我的第一个应用程序。我使用带有故事板的 Xcode 4 来更好地了解正在发生的事情。该应用程序以带有 4 个选项卡的 TabBarController 开始(在故事栏中)。其中两个选项卡是带有 tableview 系统的导航控制器,另外两个选项卡是常规视图控制器。

我只在 Storyboard 中创建了 TabBarController 本身,没有为它创建一个类或其他任何东西。因此,所有选项卡似乎在应用程序中同时“运行”,当我进入另一个选项卡并返回时,它们保持不变。它看起来有点不专业,而且可能对 iphone 也不利?

现在我想在进入另一个选项卡时使左侧选项卡变为非活动/重置为 RootViewController。

换句话说,为 TabBar 制作某种委托函数,因此只有选定的选项卡处于活动状态。类似的东西。如果我错了,请纠正我,我只是想了解我需要做什么。

经过我的研究,我必须在 AppDelegate.h 中为 TabBar 创建一个属性,在 AppDelegate.m 中合成它,然后以某种方式将 TabBar 的委托设置为 AppDelegate(self ?)或其他东西,就完成了以某种方式在这里(AppDelegate.m):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//some statements.

然后在 AppDelegate.m 的某处添加类似这样的内容:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
//With some statements about the viewcontrollers

但是正如您所见,我对编码不是很有经验,而且我找不到我理解的教程/指南,因为他们使用 xibs 等。所以有人可以帮我实现这个功能吗?我需要代码示例来理解如何做到这一点,如果你只用文字描述这个过程,如果你理解我的意思,它只会给我提出很多新问题。

代表 4 个选项卡(2 个表格视图和 2 个视图)的类让我们称之为:

FirstTableViewController、SecondTableViewController、FirstViewController、SecondViewController

我不知道在AppDelegate中做这个功能是否足够,或者我是否必须为TabBar做一个类(.h/.m),在不同的ViewControllers类中添加代码等。

我希望有人能以最简单和正确的方式帮助我做到这一点,我相信许多其他人在他们的应用程序开发的初学者阶段都会遇到这个困境,并且会发现这个问题的答案非常有用。

感谢您的帮助。

【问题讨论】:

    标签: iphone xcode delegates tabs uitabbarcontroller


    【解决方案1】:

    这是 Apple 预期和用户期望的基于标签栏的应用程序的行为。它允许您查看应用程序的不同区域而不会丢失您所在的位置。

    但是,如果在某些情况下,您想将视图控制器重置回其原始状态,您可以在给定视图控制器的 viewWillAppear 中执行此操作。

    如果您想通过应用程序委托和标签栏控制器的委托方法来处理此问题,您可以在情节提要/XIB 加载后引用标签栏。只需使用:

    rootViewController.tabBarController.delegate = self 在您的应用委托中。

    或者,您可以在情节提要中将tabBarController 的类更改为您自己的自定义类,方法是在左侧窗格的对象列表中选择标签栏控制器并转到身份检查器,将类从UITabBarController 更改到自定义子类。

    【讨论】:

    • 好的,那么就让它保持现在的样子没有任何委托功能来处理标签栏没有任何问题吗?如果是这样,它只是一个表格视图,如果在选择另一个选项卡时它变为默认设置,这将是实用的。然后我会在 viewWillAppear 中解决这个问题。
    • 对,我想大多数人都会期待这种行为。
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多