Ios 导航控制器干扰TabBar控制器
我有一个菜单,它只是选项卡上的一个表视图。当您选择其中一个表格单元格时,它会与嵌入在导航控制器中的viewcontroller分离。我在这个导航控制器上添加了一个“完成”按钮,并创建了一个返回菜单的序列。但是,现在菜单没有显示选项卡栏,而是显示一个带有“后退”按钮的导航栏 这是菜单(选项卡栏的一部分),只是一个表视图 这是单击tableview单元格时显示的页面 这是单击“完成”后的菜单 单击“完成”时,我希望它返回到菜单,如第一个屏幕截图所示。我试图使用界面生成器来完成此操作,但我想我可以创建一个类并通过代码返回菜单 有没有办法解决这个问题 -----编辑----- 这是没有“完成”按钮的支持页面 ------编辑----- 这是流程布局,对不起,在小屏幕笔记本电脑atm上工作很麻烦 您应该使用“显示(如推送)”序列而不是“推送”序列。这允许它在堆栈中正确显示自己 使用“推送”要求现有屏幕存在于导航控制器中,而在第一次加载时它不会出现。通过使用“推送”,它将控制器移动到导航控制器堆栈中,在按下“完成”后,导航栏将留给您 通过使用“显示(例如推送)”选项,系统将根据当前视图层次结构选择使用模式演示或导航控制器推送 显示(例如推送): 注意:如果使用模型演示文稿显示视图,则需要使用Ios 导航控制器干扰TabBar控制器,ios,swift,uinavigationcontroller,uitabbarcontroller,segue,Ios,Swift,Uinavigationcontroller,Uitabbarcontroller,Segue,我有一个菜单,它只是选项卡上的一个表视图。当您选择其中一个表格单元格时,它会与嵌入在导航控制器中的viewcontroller分离。我在这个导航控制器上添加了一个“完成”按钮,并创建了一个返回菜单的序列。但是,现在菜单没有显示选项卡栏,而是显示一个带有“后退”按钮的导航栏 这是菜单(选项卡栏的一部分),只是一个表视图 这是单击tableview单元格时显示的页面 这是单击“完成”后的菜单 单击“完成”时,我希望它返回到菜单,如第一个屏幕截图所示。我试图使用界面生成器来完成此操作,但我想我可
[self dismissViewControllerAnimated:YES completion:nil];
而不是
[self.navigationController popViewControllerAnimated:YES];
您可以进行快速检查以选择正确的方法:
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
}
else {
[self dismissViewControllerAnimated:YES completion:nil];
}
这将允许您以多种方式显示屏幕,而无需进行任何额外检查。您应该使用“显示(如推)”序列而不是“推”。这将允许它在堆栈中正确显示自己
使用“推送”要求现有屏幕存在于导航控制器中,而在第一次加载时它不会出现。通过使用“推送”,它将控制器移动到导航控制器堆栈中,在按下“完成”后,导航栏将留给您
通过使用“显示(例如推送)”选项,系统将根据当前视图层次结构选择使用模式演示或导航控制器推送
显示(例如推送):
注意:如果使用模型演示文稿显示视图,则需要使用
[self dismissViewControllerAnimated:YES completion:nil];
而不是
[self.navigationController popViewControllerAnimated:YES];
您可以进行快速检查以选择正确的方法:
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
}
else {
[self dismissViewControllerAnimated:YES completion:nil];
}
这将允许您以多种方式显示屏幕,而无需进行任何其他检查我刚刚意识到您的菜单选项卡上没有导航栏。您需要做的只是嵌入导航控制器。如果它不起作用,请告诉我
选中“按下时隐藏底部栏”我刚刚意识到您的菜单选项卡上没有导航栏。您需要做的就是嵌入导航控制器。如果它不起作用,请告诉我
选中“按下按钮时隐藏底部栏”“要显示支持页面,您是使用pushviewcontroller还是presentviewcontroller来显示它?我使用的是push Segue如果您没有设置“完成”按钮,您是否看到“后退”按钮?你看到导航栏了吗?我可以看到导航控制器,但没有默认的后退按钮,我在主要问题的底部添加了一个屏幕截图。删除右下角的导航控制器,它不需要,因为它已经在导航控制器堆栈中,用于显示支持页面,您是使用pushviewcontroller还是presentviewcontroller显示它?我使用的是push Segue如果您没有设置“完成”按钮,您是否看到“后退”按钮?你看到导航栏了吗?我可以看到导航控制器,但没有默认的后退按钮,我在主要问题的底部添加了一个屏幕截图。删除右下角的导航控制器,它不是必需的,因为它已经在导航控制器堆栈中了。啊,你的措辞让我觉得你在使用不推荐的“推”选项:)我从编辑中了解到您的评论的意思。我已经通过您的编辑和一些额外的重写调整了我的答案注:如果您的视图是使用模型演示文稿显示的,则需要使用
[自我解除视图控制器激活:是完成:无]代码>和非[self.navigationController popViewControllerAnimated:YES]代码>啊,你的措辞让我觉得你在使用不推荐的“推送”选项:)我从你的编辑中得到了你评论的意思。我已经通过您的编辑和一些额外的重写调整了我的答案注:如果您的视图是使用模型演示文稿显示的,则需要使用[自我解除视图控制器激活:是完成:无]代码>和非[self.navigationController popViewControllerAnimated:YES]代码>它不会在导航栏上显示“后退”按钮,但在点击“完成”按钮时,我也看不到选项卡栏请在调用“支持”页面时显示代码,以及“完成”按钮的代码。所有这些都已在interface builder中完成。tableview是静态的,从cell到导航控制器是连续的。我会在原始问题中添加布局的屏幕截图现在我知道为什么了。。。。删除tableview和支持页面之间的uinavigationcontroller。直接从TABLEVIEW(而不是TABLEVIEWCELL)连接到支持页面。选择要隐藏选项卡栏的视图控制器,然后选择“按下时隐藏底部栏”。它添加了tabBarHidden属性(以isTabBarHidden作为其getter)和-(void)setTabBarHidden:(BOOL)hidden animated:(BOOL)animated方法它不会在导航栏上显示back按钮,但在点击“完成”按钮时我也看不到选项卡栏请在调用Support Pa时显示代码