我很好奇这个方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
我在UIViewController.h中找到了这个方法,它是一个常规方法。 我检查一下,它不是委托方法(它不是协议)。
因为UITableViewController从UIViewController扩展,我们可以在我们的自定义类中使用此方法用于任何表视图。
奇怪的是,这种方法的行为类似于委托,它在没有任何调用的情况下触发。 它会在视图进行转换时触发。
据我所知,此行为仅存在于委托中。
UIViewController如何在其子类中调用prepareForSegue方法?
答案 0 :(得分:3)
prepareForSegue
是在ViewControllers之间发生转换时调用的方法。因此,无论何时制作segue,都会强制执行此方法。现在,如果您的主View具有子类View并且您想要从中执行Segue,则可以使用以下函数执行此操作。
[self performSegueWithIdentifier:@"segueIdentifier" sender:self];
在这种情况下,此方法将调用具有与segue对应的指定标识符的转换。无论何时调用此方法,都会在此之后立即调用prepareForSegue
,然后发生转换。
有关信息,最好在ViewControllers之间连接segue,而不是直接从视图中的Controls创建segue。有时,在执行Segue之前需要检查一些条件。
希望这有帮助。
答案 1 :(得分:1)
与UIViewController
的许多其他方法一样,您的子类可以覆盖许多UIViewController
方法的默认行为。一些示例包括viewDidLoad
和viewWillAppear
。