在我的 ios 应用程序中,我有几个视图控制器(标签栏控制器、视图控制器、表格视图控制器......)。
而且我想检测何时显示视图控制器(我拥有的任何视图控制器)。这样我想首先检查用户是否已连接。
如果他已连接,那么我让视图控制器显示。如果他没有连接,我想阻止显示视图控制器,我想显示我的登录视图控制器。
执行此操作的最佳方法是什么?
有没有办法拦截视图控制器更改以阻止它并做其他事情?
在我的 ios 应用程序中,我有几个视图控制器(标签栏控制器、视图控制器、表格视图控制器......)。
而且我想检测何时显示视图控制器(我拥有的任何视图控制器)。这样我想首先检查用户是否已连接。
如果他已连接,那么我让视图控制器显示。如果他没有连接,我想阻止显示视图控制器,我想显示我的登录视图控制器。
执行此操作的最佳方法是什么?
有没有办法拦截视图控制器更改以阻止它并做其他事情?
最后,它们是 的子类UIViewController
。你可以有一个UIViewController
子类,称为MyBaseViewController
(例如)和方法viewWillApear:
-(void)viewWillAppear:(BOOL)animated
{
// Check connection here...
}
在那里,您可以创建用户何时连接或不连接的逻辑。
是的,您可以在 UIViewController 上使用这些实例方法,作为事件的挂钩,
响应查看事件
– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
– viewWillLayoutSubviews
– viewDidLayoutSubviews
如果您使用 segues 从每个视图控制器转到其他视图控制器,则可以使用:
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
您可以在当前控制器的该方法中进行所有检查,并根据用户状态(连接或未连接)返回YES
或返回。NO
如果您返回NO
,用户将不会导航到 segue 的目标控制器,您可以改为显示 Login 视图控制器。