如何在 viewController 中使用 UITabbar?
Posted
技术标签:
【中文标题】如何在 viewController 中使用 UITabbar?【英文标题】:How can i take a UITabbar in a viewController? 【发布时间】:2012-12-11 21:20:18 【问题描述】:如果我直截了当,那么我的问题是我有一个带有两个按钮的 UIViewController。
按钮一 --(onclick 必须导航到)--->UITabbarController
带有 4 个 UITabbar
项目,或者我可以在我的新 UIViewController
中使用 UITabbar
;
按钮二 --(OnClick 必须导航到)--->UITabbarController
其中第一个 tabbaritem
将包含 UITableView
或者我可以在我的新 UIViewController
中使用 UITabbar
第一个TabbarItem
将包含UITableView
。
我怎么做这个???示例代码将更有帮助,这两种建议都没有。如果您需要任何澄清,请随时询问。
致以最诚挚的问候 恶魔
【问题讨论】:
@user427969 不,我没有使用故事板。 你尝试了什么???尝试使用情节提要构建它:) 不,我不能使用故事板。我必须以编程方式进行。 【参考方案1】:首先,如果您希望在单击按钮时推送另一个视图控制器,则需要有一个 NavigationController。您需要执行的步骤如下
-
从 iPhone 上的 MasterDetail 应用开始
在 xib 文件中,放置按钮并将它们连接到正确的方法
在视图中确实出现了视图控制器有如下代码
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]];
当然,您必须在视图控制器中为 tbc1 和 tbc2 定义属性。
在应用委托中执行以下操作
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;
将.h文件中的UIViewController改成UINavigationController之类的
@property (strong, nonatomic) UINavigationController *viewController;
拥有两个按钮并将其连接到以下方法
-(IBAction)tbc1Clicked
[self.navigationController pushViewController:self.tbc1 animated:YES];
-(IBAction)tbc2Clicked
[self.navigationController pushViewController:self.tbc2 animated:YES];
【讨论】:
首先感谢您的回答。我可以理解您的解决方案,但有两个问题,首先我现在无法使用 masterdetail 应用程序。其次我无法在此应用程序中使用任何笔尖。那么如果我使用空应用程序还有其他选择吗??? 说明你现在在你当前的应用程序中的什么位置,我可以从那里带你走。 我处于初始状态很不幸,但确实如此......我已经制作了我的空应用程序,在应用程序委托中我已经将 uiviewcontroller 作为包含我的两个按钮的 rootviewcontroler......当我点击在第一个按钮上,它将导航(必须导航非模态)我到另一个控制器,该控制器将包含 4 个带有导航栏的 uitabbar 项目。现在何时单击第二个按钮它将移动到另一个 uitabbar 项目控制器。清楚吗? 你的应用代理应该有一个导航控制器,如果你想让其他视图控制器轻松地在它之上。我将编辑答案以显示您需要做什么 谢谢..请做...我坚持下去了。以上是关于如何在 viewController 中使用 UITabbar?的主要内容,如果未能解决你的问题,请参考以下文章
如何选择在 View 和 ViewController 中放置哪些代码?
有办法在两个 viewController 之间共享 UI 元素吗?
如何在 UIPageViewController 中重用相同的 ViewController?