所以,在这种情况下......
Back Button
值设置为Back。当我构建并运行时,导航栏位于Storyboard C中,但在Storyboard C的导航栏中没有后退按钮。在Storyboard A和B中,我甚至将这些UITableView放在导航控制器中,认为包含后退吧,它首先需要来自导航控制器,但这不起作用。
当我转到UINavigationItem的outlet页面时,它就是这样的:
如何将后退按钮添加到Storyboard C?
仅供参考我不是那种经验丰富的iOS开发人员,所以可能会有一些我不知道的明显事情。
编辑:我使用show segue
进行A - > C和B - > C segues。
答案 0 :(得分:2)
您应该像这样设置您的观点:
Embed Navigation Controller
适用于View A
Embed Navigation Controller
适用于View B
view A
创建Segue - > View C
从view B
创建Segue - > View C
你可以看到,在你创建Segue到View C
之后,在View C
中会自动出现导航栏,因为你只需要为根视图嵌入导航控制器(在这种情况下是{{ 1}}和View A
)
这是将导航控制器嵌入视图控制器的方法
这就是你需要设置故事板的方法。
所以现在你有2个导航分支
希望它可以帮到你
答案 1 :(得分:0)
我认为当从另一个故事板回来时,您的导航栏会被隐藏。在这种情况下,您必须强制显示导航栏。在故事板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)
}
答案 2 :(得分:0)
如果您正在推动ViewController&#34; C&#34;在导航堆栈上,您需要在后退按钮上弹出该控制器。
推送
self.navigationController?.pushViewController(ViewControllerC, animated: true)
<强>坡平强>
self.navigationController?.popViewController(animated: true)
如果您正在展示ViewController&#34; C&#34;然后你需要在后退按钮上点击该控制器。
<强>呈现强>
self.presentViewController(ViewControllerC, animated:true, completion:nil)
<强>解聘强>
self.dismissViewControllerAnimated(false, completion: nil)
修改强>
您需要添加此代码,如
从A开始 - > C,你需要在tableview的didSelectRowAtIndexPath
方法中添加它(点击单元格),如果你使用segue则忽略
self.navigationController?.pushViewController(ViewControllerC, animated: true)
从C回来时 - > A,你需要在&#34; C&#34;
中实现这样的条形按钮动作方法在视图控制器的viewDidLoad()
方法&#34; C&#34;中,以编程方式添加条形按钮
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)
}
您也可以使用与View控制器B相同的方式。