iphone - 在不使用 UITabBarController 创建项目的情况下使用 UITabBar

标签 iphone ios uinavigationcontroller calendar uitabbar

我想在我的项目中使用 UITabBar。我没有创建基于 uitabbar 的项目。我想知道如何只在一页上使用 UITabBar。我可以将它添加到页面,但我想添加它并在文件中使用它,而不是在整个项目中使用它。我也不想重新启动这个项目,因为我有一个正在使用的基于导航的项目模板,并且只想将 UITabBar 添加到单个页面以使用两个 View 来回移动。

我的项目流程是启动画面 -> 登录页面 -> TableView -> 带搜索栏的 TableView。我想在带有搜索栏的 tableView 上做的是在底部有一个 UITabBar,这样我就可以在一个 tableView 和日历页面之间切换,并将搜索栏保持在顶部。我可以使用工具栏,但我认为标签栏看起来更好。

任何帮助将不胜感激。

最佳答案

首先,请注意,您将违反 HIG :

A tab bar appears at the bottom edge of the screen and should be accessible from every location in the application.

用户希望标签栏用于他们应用中的最高级别导航,因此在其他情况下使用它会造成混淆,我建议您使用不同的 UI 范式。

话虽如此,如果您决心这样做,那么很容易以编程方式创建标签栏 Controller :

UITabBarController *tabBarController = [[UITabBarController alloc] init];
[tabBarController setViewControllers:[NSArray arraywithObjects: firstViewController, secondViewController, nil] 
                            animated:NO];

并设置标签栏项目:

firstViewController.tabBarItem = [UITabBarItem initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];
secondViewController.tabBarItem = [UITabBarItem initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:1];

然后只需使用 tabBarController 做任何您需要做的事情:以模态方式呈现它(不寒而栗),将它推到导航 Controller 上(天啊,人类),或其他任何方式。

关于iphone - 在不使用 UITabBarController 创建项目的情况下使用 UITabBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470526/

相关文章:

iphone - 当状态栏隐藏时,UISearchController 在 iPhone X 上出现问题

iphone - 将 iphone/ipod 内存歌曲设置为铃声

iphone - 二进制 plist 的 HTTP 内容类型是什么?

ios - NSURLSession 回调中的“延迟” block 未执行

ios - 使用嵌入式 View Controller 设置 view.accessibilityElements

swift - UINavigationBar 栏高度没有改变

swift - 仅更改 UINavigationBar 背景的 alpha?

ios - 使用 block 将数据传回 View Controller

ios - CallKit Framework 是否可以调用、接听和结束电话调用,或者仅用于 VOIP 调用?

ios - AFNetworking 的默认超时秒数?