【发布时间】:2015-10-13 13:39:04
【问题描述】:
我有 3 个视图控制器。(让 VC1、VC2、VC3)我从 VC1 的按钮单击事件中重载了 VC1 上的 VC2。现在我想从 VC2 的按钮单击事件中重载 VC1 上的 VC3,同时时间解雇VC2。 如果我单独执行这些任务,它可以正常工作..但是当我同时执行相同任务时它不起作用..
请帮忙
【问题讨论】:
标签: ios xamarin-studio
我有 3 个视图控制器。(让 VC1、VC2、VC3)我从 VC1 的按钮单击事件中重载了 VC1 上的 VC2。现在我想从 VC2 的按钮单击事件中重载 VC1 上的 VC3,同时时间解雇VC2。 如果我单独执行这些任务,它可以正常工作..但是当我同时执行相同任务时它不起作用..
请帮忙
【问题讨论】:
标签: ios xamarin-studio
因此,在这种情况下,我建议在 VC2 内部设置一个由 VC1 实现的委托协议。
类似:
@protocol SomeDelegate <NSObject>
- (void)requestsDismissalOfViewController;
@end
@interface ViewController : UIViewController
@property (weak, nonatomic) id<SomeDelegate> delegate;
@end
因此,在 VC2 中,您将调用 [self.delegate requestsDismissalOfViewController];,然后在 VC1 中,您将实现 requestsDismissalOfViewController 方法,您可以在该方法中关闭 VC2 并呈现 VC3。您最好的选择是在解雇的完成块中出现。
【讨论】: