从标签栏按钮将视图控制器推送到导航控制器上

     2023-03-22     288

关键词:

【中文标题】从标签栏按钮将视图控制器推送到导航控制器上【英文标题】:Pushing a view controller onto a navigation controller from a tab bar button 【发布时间】:2014-07-23 08:30:07 【问题描述】:

我有一个带有如下按钮的标签栏控制器:

- (void) addButtonPressed:(UIButton *) sender
    
    [sender setBackgroundColor:[UIColor regularColor]];

    PostViewController *post = [[PostViewController alloc] init];

    [self.navigationController pushViewController:post animated:YES];

此代码运行,但 PostViewController 从未显示,标签栏控制器仍然存在。

如何推送到新控制器?

已创建 NavigationController,并将 StartViewController 添加为 rootController。

然后在 StartViewController 我有:

TabBarController *tab = [[TabBarController alloc] init];

    // Presentation
[self presentViewController:tab animated:NO completion:nil];

【问题讨论】:

能否告诉我您的标签栏控制器代码是如何创建的? 您的标签栏控制器是否嵌入在导航控制器中? 但如问题所示 TabBarController 未嵌入导航控制器中。 如果你的 viewController 被推送,那么只有它的子视图控制器获取根视图控制器的导航控制器,但在你正在呈现的情况下,检查 navigationController 是否为零。 如何正确嵌入? 【参考方案1】:

您需要在标签栏中创建单独的导航控制器。

假设有 3 个选项卡 A、B 和 C。所有三个选项卡都具有从一个视图导航到另一个视图的功能。而不是您需要创建三个单独的导航控制器 eact 指向选项卡 A、B 和 C。通过这种方式,您可以导航到特定选项卡中的任何类。

查看此link 了解更多详情。

希望这会对您有所帮助。快乐编码:)

【讨论】:

有人告诉你只创建一个导航控制器并使用 initRootViewController 设置它 是的,当我们有简单的基于导航的应用程序时,我们会这样做 这只有在标签栏是你的 rootViewController 时才有效【参考方案2】:

您可能需要将标签栏控制器嵌入到导航控制器中,在情节提要中单击 tabbarController 以便它以所有蓝线突出显示,然后转到 Xcode 中的编辑器选择嵌入> UINavigationController ..如果您想以编程方式执行此操作,则在您设置窗口的AppDelegate 中使用此::

UINavigationController*  navigationController = [[UINavigationController alloc] initWithRootViewController:tabBarController];
navigationController.toolbarHidden=YES;
navigationController.navigationBarHidden=YES;
self.window.rootViewController =navigationController; 

【讨论】:

【参考方案3】:

如果你使用 .xib 那么你必须使用 NSBundle 来加载 nib

如果您使用情节提要,则需要使用 prepareForSegue 传递数据或将其显示出来

【讨论】:

推送到另一个选项卡的视图控制器

】推送到另一个选项卡的视图控制器【英文标题】:pushtoanothertab\'sviewcontroller【发布时间】:2017-04-2110:47:22【问题描述】:当用户单击某个单元格上的按钮时(视图)我想推到另一个标签的视图控制器标签栏控制器---导航控制器... 查看详情

导航栏上没有后退按钮

...我从一个基于导航的项目开始,并将进一步的视图推送到控制器上。问题是,如果我不给导航项命名,那么后退按钮就不会被绘制!只有我给导航栏一个标题,后退按钮才会出现。在NO标题的情况下,苹果似乎不能写“返回”或... 查看详情

将 UITableViewController 推送到导航堆栈时看不到导航栏

...发布时间】:2017-09-1017:29:23【问题描述】:当前位于导航控制器堆栈上的视图控制器中的代码。现在我想将UITableViewContoller推送到导航堆栈上。我正在使用以下代 查看详情

导航栏在推送到新视图控制器期间变为纯黑色

】导航栏在推送到新视图控制器期间变为纯黑色【英文标题】:Navigationbarturnssolidblackduringpushtonewviewcontroller【发布时间】:2014-08-2416:54:44【问题描述】:我在UINavigationController中嵌入了一个UITableViewController。点击一个按钮会推动... 查看详情

如何使用 prepareForSegue 方法从视图控制器推送到导航视图控制器?

】如何使用prepareForSegue方法从视图控制器推送到导航视图控制器?【英文标题】:HowtopushfromviewcontrollertonavigationviewcontrollerusingprepareForSeguemethod?【发布时间】:2012-05-1412:52:40【问题描述】:我有一个项目,它有一个视图控制器作... 查看详情

通知后,从应用程序委托将视图控制器推送到选项卡栏中

】通知后,从应用程序委托将视图控制器推送到选项卡栏中【英文标题】:pushingviewcontrollerinsideatabbarfromappdelegate,afteranotification【发布时间】:2010-06-0613:29:49【问题描述】:我有一个带有标签栏的应用程序,每个标签内都有一个... 查看详情

如何将多个视图控制器推送到导航控制器上

】如何将多个视图控制器推送到导航控制器上【英文标题】:Howtopushmultipleviewcontrollersontonavigationcontroller【发布时间】:2012-02-0515:34:28【问题描述】:新手在这里编写我的第一个应用程序(已经制作了几个教程应用程序)。我正... 查看详情

从标签栏控制器推送到新的标签栏控制器

】从标签栏控制器推送到新的标签栏控制器【英文标题】:PushfromTabBarControllertoanewTabBarController【发布时间】:2014-08-0714:47:51【问题描述】:我在标签栏页面上有一个UITableView。现在,如果我点击UITableViewCell,我想推送到一个新的... 查看详情

如何快速将需求视图控制器推送到导航控制器

】如何快速将需求视图控制器推送到导航控制器【英文标题】:Howtopushrequireviewcontrollertonavigationcontrollerinswift【发布时间】:2017-04-2108:45:54【问题描述】:我正在开发一个具有登录屏幕和验证码屏幕的应用程序。一旦用户登录并... 查看详情

导航栏在推送到新视图控制器时会缩小

】导航栏在推送到新视图控制器时会缩小【英文标题】:Navigationbarshrinkswhenpushedtothenewviewcontroller【发布时间】:2020-12-2811:30:34【问题描述】:我有一个详细视图控制器,它有tableView显示用户信息。但是当我从另一个视图控制器... 查看详情

附加视图控制器中的导航栏

】附加视图控制器中的导航栏【英文标题】:Navigationbarinappendedviewcontrollers【发布时间】:2015-09-2914:47:18【问题描述】:我目前将三个视图控制器附加到一个名为V1的视图控制器上。V1有一个水平滚动视图,可以在滚动时将其他三... 查看详情

将 UIViewController 推送到导航堆栈时如何显示选项卡栏

...时间】:2009-08-2703:35:21【问题描述】:因此,当您将视图控制器推送到导航控制器堆栈时,隐藏标签栏非常容易:uiViewController.hidesBottomBarWhenPushed=YES; 查看详情

如何在标签栏视图控制器中显示后退按钮?

】如何在标签栏视图控制器中显示后退按钮?【英文标题】:Howtoshowbackbuttoninatabbarviewcontroller?【发布时间】:2017-08-0409:38:35【问题描述】:我有一个导航控制器,其根目录上有一个主视图控制器。然后我推一个标签栏视图控制... 查看详情

使用 overCurrentContext 呈现视图控制器,然后推送到导航堆栈会导致导航栏重叠

】使用overCurrentContext呈现视图控制器,然后推送到导航堆栈会导致导航栏重叠【英文标题】:PresentingviewcontrollerwithoverCurrentContextthenpushingtonavigationstackresultsinnavigationbarunderlapping【发布时间】:2017-02-2302:25:09【问题描述】:由于导... 查看详情

从 AppDelegate 和标签栏推送视图控制器

】从AppDelegate和标签栏推送视图控制器【英文标题】:PushViewControllerFromAppDelegateandTabBar【发布时间】:2014-06-2404:26:04【问题描述】:我的应用设置了一个标签栏控制器作为RootViewController,每个标签都有一个NavigationController。当执... 查看详情

推送到上一个视图 ios 的后退按钮

...:00【问题描述】:我有一个“设置”类型的视图,我希望标签导航中的每个视图都可以访问它。我能够进入设置视图,但我如何编写一个按钮,让您回到将您带到那里的视图?例如,如果我从视图1访问设置视图,我希望后退按... 查看详情

如何从标签栏视图控制器切换到另一个作为导航控制器子视图的视图

】如何从标签栏视图控制器切换到另一个作为导航控制器子视图的视图【英文标题】:Howtoseguefromtabbarviewcontrollertoanotherviewwhichisachildofanavigationcontroller【发布时间】:2020-04-0413:35:05【问题描述】:我布置了我的主屏幕(摘要屏幕... 查看详情

Swift 3 - 将 segue 推送到导航控制器

】Swift3-将segue推送到导航控制器【英文标题】:Swift3-Pushseguetonavigationcontroller【发布时间】:2016-10-1917:59:47【问题描述】:在我的故事板中,我有一个视图控制器,还有一个导航控制器和另一个名为HistoryController的视图控制器。Na... 查看详情