gpt4 book ai didi

ios - 在 iOS 上进行 segue 时将元素保留在导航 Controller 中

转载 作者:行者123 更新时间:2023-12-01 16:56:31 25 4
gpt4 key购买 nike

我正在开发一个显示地点列表的应用程序。有一个 NavigationController,在导航栏中我有一些 UIBarButtonItem(左右),中间部分是一个带有标签和两个 UIButton 的自定义 View 。

ToolBar

map 按钮执行对在 map 上显示点的 MapViewController 的转场。我想要实现的是 map ViewController的导航栏也显示相同的自定义UIView(显示箭头按钮和Day Label),但我不知道如何实现这一点。我试图复制 prepareForSegue 上的 View :

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"FlipFromListToMap"]) {
if ([segue.destinationViewController isKindOfClass:[DisplayTourMapViewController class]]){
DisplayTourMapViewController *cityListController = segue.destinationViewController;
cityListController.navigationItem.titleView = self.navigationItem.titleView;
}
}
}

但这不起作用。此外,当从原始表格 View 返回时,导航 View 消失了:

Gone

我想知道我的方法是否错误。我可以在 segues 之间保留 navigationcontroller View 吗?我可以使用navigationcontroller 和segue 的吗?或者我应该在 Controller 内部只有两个 View 并以编程方式交换它们?这两个 View 的模型是相同的,它只是改变了我呈现信息的方式( map 或列表)。

提前致谢。

最佳答案

当您回到第一个导航 Controller 时,标题 View 没有出现在它的原因是您已经更改了它的 super View 。每个 View 只能有一个 super View ,并且您将其移动到下一个 View Controller 的 View 。

但我不知道为什么它根本没有出现在第二个 View Controller 上。我刚刚制作了一个与您的代码完全相同的示例应用程序,下一个 View Controller 确实显示了第一个的标题 View 。然而,当它回来时,第一个没有标题 View 。我试图通过将标题 View 存储在第一个 Controller 上的属性中并在 viewWill/DidAppear 中再次设置它来解决此问题:如果它不是 nil,但它会在动画期间显示标题 View ,然后将其删除。

所有这些听起来都不像预期的行为,所以我会做更多的测试并报告一个错误(或者回来提供一个更好的答案)。我建议你这样做。

关于ios - 在 iOS 上进行 segue 时将元素保留在导航 Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11343751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com