gpt4 book ai didi

iphone - 如何跳转到特定 View ?

转载 作者:行者123 更新时间:2023-12-03 20:24:50 25 4
gpt4 key购买 nike

我有 3 个 View (xib'd),第三个 View 打开模态视图(也是 xib'd)。我的目标是处理模态视图并跳转到 View #1。

我使用了以下代码,但它什么也没做。

self.statusView = [[StatusViewController alloc] initWithNibName:@"StatusViewController" bundle:nil];
[self.navigationController popToViewController:self.statusView animated:YES];
[self.navigationController popToViewController:

我也尝试了以下方法,结果相同。[self.navigationController.viewControllers objectAtIndex:0] 动画:YES];

我要疯了...

statusView 有一个定期合成的访问器,它代表我想要跳转到的 View 。

最佳答案

根据您迄今为止所说的内容,尚不完全清楚您的观点是如何相互建立的。

我猜您有一个导航 Controller 和 3 个显示在导航堆栈上的 View Controller 。

如果是这种情况,并且您想一次弹出两个屏幕(从#3 到#1,跳过#2),那么您需要一个指向 View Controller 的指针# 1(不是 View 本身)。看起来问题中的第一个 popViewController: 方法调用正在 View 中发送。

弹出到第一个 View Controller 的示例代码:

UINavigationController* navController = self.navigationController;
UIViewController* controller = [navController.viewControllers objectAtIndex:0];
[navController popToViewController:controller animated:YES];

如果您尝试过此操作,但不起作用,则可能存在一些问题:

  • 也许 self.navigationController 实际上并不是正确的对象。
  • 也许您期望的 View 实际上并不是导航堆栈上的 View #0。
  • 也许您正在使用的导航 Controller 当前不可见。

您可以采取以下一些进一步步骤来检验这些假设:

  • 当您首次分配要使用的导航 Controller 时,请调用 NSLog(@"Nav controller is at %p", navController); 并在此代码中添加对 的调用NSLog(@"Now my navController is at %p", navController); 并检查地址是否匹配。
  • 如果导航 Controller 是正确的,则打印出当前的导航堆栈;像这样的东西(假设每个 View Controller 都有不同的类名):

    for (UIViewController* viewController in navController.viewControllers) {
    NSLog(@"%s", class_getName([viewController class]));
    }
  • 对您认为可见的导航 Controller 进行一些可视化操作,以确保它确实可见。例如,[navController.visibleViewController.view addSubview:aColorFulView];,其中aColorFulView是一些视觉上明显的UIView

关于iphone - 如何跳转到特定 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1424121/

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