【问题标题】:How can i take a UITabbar in a viewController?如何在 viewController 中使用 UITabbar?
【发布时间】:2012-12-11 21:20:18
【问题描述】:

如果我直截了当,那么我的问题是我有一个带有两个按钮的 UIViewController。

  1. 按钮一 --(onclick 必须导航到)--->UITabbarController 带有 4 个 UITabbar 项目,或者我可以在我的新 UIViewController 中使用 UITabbar

    李>
  2. 按钮二 --(OnClick 必须导航到)--->UITabbarController 其中第一个 tabbaritem 将包含 UITableView 或者我可以在我的新 UIViewController 中使用 UITabbar第一个TabbarItem 将包含UITableView

我怎么做这个???示例代码将更有帮助,这两种建议都没有。如果您需要任何澄清,请随时询问。

致以最诚挚的问候 恶魔

【问题讨论】:

  • @user427969 不,我没有使用故事板。
  • 你尝试了什么???尝试使用情节提要构建它:)
  • 不,我不能使用故事板。我必须以编程方式进行。

标签: iphone ios uitableview uitabbar


【解决方案1】:

首先,如果您希望在单击按钮时推送另一个视图控制器,则需要有一个 NavigationController。您需要执行的步骤如下

  1. 从 iPhone 上的 MasterDetail 应用开始
  2. 在 xib 文件中,放置按钮并将它们连接到正确的方法
  3. 在视图中确实出现了视图控制器有如下代码

    self.tbc1 = [[UITabBarController alloc] init];
    self.tbc2 = [[UITabBarController alloc] init];
    
    
    UIViewController *tbc1vc1 = [[UIViewController alloc] init];
    UIViewController *tbc1vc2 = [[UIViewController alloc] init];
    UIViewController *tbc1vc3 = [[UIViewController alloc] init];
    
    UITableViewController *tbc2vc1 = [[UITableViewController alloc] init];
    UIViewController *tbc2vc2 = [[UIViewController alloc] init];
    UIViewController *tbc2vc3 = [[UIViewController alloc] init];
    
    [self.tbc1 setViewControllers:[NSArray arrayWithObjects:tbc1vc1,tbc1vc2,tbc1vc3, nil]];
    [self.tbc1 setViewControllers:[NSArray arrayWithObjects:tbc2vc1,tbc2vc2,tbc2vc3, nil]];
    
  4. 当然,您必须在视图控制器中为 tbc1 和 tbc2 定义属性。

  5. 在应用委托中执行以下操作

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    ViewController *myViewController = [[ViewController alloc] init];
    self.viewController = [[UINavigationController alloc] initWithRootViewController:myViewController];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
    
  6. 将.h文件中的UIViewController改成UINavigationController之类的

    @property (strong, nonatomic) UINavigationController *viewController;
    
  7. 拥有两个按钮并将其连接到以下方法

    -(IBAction)tbc1Clicked{
    [self.navigationController pushViewController:self.tbc1 animated:YES];
    }
    
    -(IBAction)tbc2Clicked{
        [self.navigationController pushViewController:self.tbc2 animated:YES];
    }
    

【讨论】:

  • 首先感谢您的回答。我可以理解您的解决方案,但有两个问题,首先我现在无法使用 masterdetail 应用程序。其次我无法在此应用程序中使用任何笔尖。那么如果我使用空应用程序还有其他选择吗???
  • 说明你现在在你当前的应用程序中的什么位置,我可以从那里带你走。
  • 我处于初始状态很不幸,但确实如此......我已经制作了我的空应用程序,在应用程序委托中我已经将 uiviewcontroller 作为包含我的两个按钮的 rootviewcontroler......当我点击在第一个按钮上,它将导航(必须导航非模态)我到另一个控制器,该控制器将包含 4 个带有导航栏的 uitabbar 项目。现在何时单击第二个按钮它将移动到另一个 uitabbar 项目控制器。清楚吗?
  • 你的应用代理应该有一个导航控制器,如果你想让其他视图控制器轻松地在它之上。我将编辑答案以显示您需要做什么
  • 谢谢..请做...我坚持下去了。
猜你喜欢
  • 2019-08-20
  • 1970-01-01
  • 2018-01-18
  • 2018-12-23
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
相关资源
最近更新 更多