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