Ios segue后返回按钮丢失
所以,在这个场景中Ios segue后返回按钮丢失,ios,swift,storyboard,segue,Ios,Swift,Storyboard,Segue,所以,在这个场景中 我有三个故事板(A、B和C) C是一个常见的故事板,a和B在某个点上都与故事板引用相连接 故事板A和B都是带有新闻文章列表的UITableView 当您单击其中一个UITableViewCell时,它将转到情节提要C 在故事板C中,我希望能够回到我来自的地方(A或B)。因此,我在情节提要C中添加了一个导航栏,并添加了一个后退按钮 在脚本C中的UINavigationItem中,我将Back按钮值设置为Back 当我构建和运行时,导航栏在情节提要C中,但在情节提要C中的导航
- 我有三个故事板(A、B和C)李>
- C是一个常见的故事板,a和B在某个点上都与故事板引用相连接李>
- 故事板A和B都是带有新闻文章列表的UITableView
- 当您单击其中一个UITableViewCell时,它将转到情节提要C
- 在故事板C中,我希望能够回到我来自的地方(A或B)。因此,我在情节提要C中添加了一个导航栏,并添加了一个后退按钮李>
- 在脚本C中的UINavigationItem中,我将
值设置为BackBack按钮
编辑:我对a-->C和B-->C两个序列都使用
显示序列
。我认为从另一个情节提要返回时,导航栏会被隐藏。在这种情况下,您必须强制显示导航栏。在序列图像板C中的第一个视图控制器中,尝试以下代码:
- (void) viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];
}
swift3
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillAppear(animated)
}
我想当你从另一个故事板回来时,你的导航栏会被隐藏起来。在这种情况下,您必须强制显示导航栏。在序列图像板C中的第一个视图控制器中,尝试以下代码:
- (void) viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillAppear:animated];
}
swift3
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillAppear(animated)
}
- 如果要在导航堆栈上按ViewController“C”,则需要在点击后退按钮时弹出该控制器
推送
popingself.navigationController?.pushViewController(ViewControllerC,动画:true)
self.navigationController?.popViewController(动画:true)
- 如果要显示ViewController“C”,则需要在点击后退按钮时关闭该控制器
展示
解雇self.presentViewController(ViewControllerC,动画:true,完成:nil)
self.dismissViewControllerAnimated(false,完成:nil)
DidSelectRowatineXpath
方法中添加此选项(点击单元格),如果使用segue则忽略此选项
self.navigationController?.pushViewController(ViewControllerC, animated: true)
当从C->A返回时,您需要在“C”中实现这样的条形按钮操作方法
在视图控制器“C”的viewDidLoad()
方法中,以编程方式添加条形按钮
let backBtn = UIButton(type: .custom)
backBtn.setImage(UIImage(named: "imagename"), for: .normal)
backBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
backBtn.addTarget(self, action: #selector(ViewControllerC.back), for: .touchUpInside)
let item2 = UIBarButtonItem(customView: backBtn)
func back(sender: UIButton){
self.navigationController?.popViewController(animated: true)
}
同样,您也可以对视图控制器B执行此操作。- 如果要在导航堆栈上按ViewController“C”,则需要在点击后退按钮时弹出该控制器
推送
popingself.navigationController?.pushViewController(ViewControllerC,动画:true)
self.navigationController?.popViewController(动画:true)
- 如果要显示ViewController“C”,则需要在点击后退按钮时关闭该控制器
展示
解雇self.presentViewController(ViewControllerC,动画:true,完成:nil)
self.dismissViewControllerAnimated(false,完成:nil)
DidSelectRowatineXpath
方法中添加此选项(点击单元格),如果使用segue则忽略此选项
self.navigationController?.pushViewController(ViewControllerC, animated: true)
当从C->A返回时,您需要在“C”中实现这样的条形按钮操作方法
在视图控制器“C”的viewDidLoad()
方法中,以编程方式添加条形按钮
let backBtn = UIButton(type: .custom)
backBtn.setImage(UIImage(named: "imagename"), for: .normal)
backBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
backBtn.addTarget(self, action: #selector(ViewControllerC.back), for: .touchUpInside)
let item2 = UIBarButtonItem(customView: backBtn)
func back(sender: UIButton){
self.navigationController?.popViewController(animated: true)
}
同样,您也可以对视图控制器B执行此操作。您应该按照以下方式设置视图:
- 视图A(表视图)<代码>嵌入导航控制器用于查看A
- 视图B(表视图)<代码>嵌入导航控制器用于
视图B
- 视图C(正常视图)不嵌入视图C的导航控制器
- 从
->视图A
视图C
- 从
->视图B
您可以看到,在创建Segue to视图C
之后,在View C
中将自动出现导航栏,因为您只需要为根视图嵌入导航控制器(在本例中为View C
和View A
)View C
希望它能帮助您您应该这样设置视图:
- 视图A(表视图)<代码>嵌入导航控制器用于查看A
- 视图B(表视图)<代码>嵌入导航控制器用于
视图B
- 视图C(正常视图)不嵌入视图C的导航控制器
- 从
->视图A
视图C
- 从
->视图B
您可以看到,在创建Segue to视图C
V之后