作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
在我们的 iOS 应用程序中,一个接一个地包含三个 UIViewController
,我们希望根据某些条件跳过中间的一个,直接从第一个转到第三个。但是,用户应该能够通过第三个 Controller 上的“后退”按钮返回到第二个 Controller 。
我尝试了 [self performSegueWithIdentifier:@"segueId"sender:sender];
from viewDidLoad
, viewWillAppear
但这破坏了导航栏由调试日志指示。从 viewDidAppear
调用此代码工作正常,但第二个 View 已经显示,这是我首先试图避免的。
我也试过 [self.navigationController pushViewController:vc animated:NO];
但结果是类似损坏的导航栏,即使这次调试日志没有这样的条目。
执行此操作的受支持方式是什么(如果可能的话)?
目标是iOS 5.1的iPhone4,开发环境是Xcode 4.3。
最佳答案
我在应用程序中使用以下代码。完全按预期工作。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SecondViewController *secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
if (indexPath.row == 0) {
// skip second vc
ThirdViewController *thirdVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ThirdViewControllerViewController"];
[self.navigationController pushViewController:secondVC animated:NO];
[self.navigationController pushViewController:thirdVC animated:YES];
}
else {
// push second vc
[self.navigationController pushViewController:secondVC animated:YES];
}
}
关于iphone - 使用 UINavigatonController 有条件地跳过 iOS 5 应用程序中的 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9692572/
在我们的 iOS 应用程序中,一个接一个地包含三个 UIViewController,我们希望根据某些条件跳过中间的一个,直接从第一个转到第三个。但是,用户应该能够通过第三个 Controller 上
我是一名优秀的程序员,十分优秀!