Objective-C。为什么 Segue 推出新的 viewController?
Objective-C. Why Segue push a new viewController?
我有 2 个观点:
- ViewController
- 表格ViewController
当我在表中时ViewController 我需要 Segue 将我带回之前的视图,但它一直在创建 ViewController.
的新副本
我需要 Segue return 我到没有克隆的最后一个视图。
TableViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString *identifire = [sender text];
ViewController* vc = (ViewController*)segue.destinationViewController;
[vc view];
[vc hideElements:identifire];
}
如果是常规转场,则会创建 viewcontroller 的新实例。将目标 viewcontroller 放在 Storyboard 中的 tableviewcontroller 之前并不重要。
您应该改用展开转场。或者直接跳回之前的 viewcontroller.
你只需要
[self.navigationController popViewControllerAnimated:true];
在您的 TableViewController
中,您需要弹出回到上一个视图控制器。
[self.navigationController popViewControllerAnimated:true];
segue 将始终创建一个新的视图控制器并将其推送到您的案例中的顶部 os 导航堆栈。您可以改用 unwind segue
。
我有 2 个观点:
- ViewController
- 表格ViewController
当我在表中时ViewController 我需要 Segue 将我带回之前的视图,但它一直在创建 ViewController.
的新副本我需要 Segue return 我到没有克隆的最后一个视图。
TableViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString *identifire = [sender text];
ViewController* vc = (ViewController*)segue.destinationViewController;
[vc view];
[vc hideElements:identifire];
}
如果是常规转场,则会创建 viewcontroller 的新实例。将目标 viewcontroller 放在 Storyboard 中的 tableviewcontroller 之前并不重要。
您应该改用展开转场。或者直接跳回之前的 viewcontroller.
你只需要
[self.navigationController popViewControllerAnimated:true];
在您的 TableViewController
中,您需要弹出回到上一个视图控制器。
[self.navigationController popViewControllerAnimated:true];
segue 将始终创建一个新的视图控制器并将其推送到您的案例中的顶部 os 导航堆栈。您可以改用 unwind segue
。