-1

在我的 ios 应用程序中,我有几个视图控制器(标签栏控制器、视图控制器、表格视图控制器......)。

而且我想检测何时显示视图控制器(我拥有的任何视图控制器)。这样我想首先检查用户是否已连接。

如果他已连接,那么我让视图控制器显示。如果他没有连接,我想阻止显示视图控制器,我想显示我的登录视图控制器。

执行此操作的最佳方法是什么?

有没有办法拦截视图控制器更改以阻止它并做其他事情?

4

3 回答 3

0

最后,它们是 的子类UIViewController。你可以有一个UIViewController子类,称为MyBaseViewController(例如)和方法viewWillApear:

-(void)viewWillAppear:(BOOL)animated
{

 // Check connection here...

}

在那里,您可以创建用户何时连接或不连接的逻辑。

于 2013-11-04T10:31:16.857 回答
0

是的,您可以在 UIViewController 上使用这些实例方法,作为事件的挂钩,

响应查看事件

– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
– viewWillLayoutSubviews
– viewDidLayoutSubviews
于 2013-11-04T10:31:50.460 回答
0

如果您使用 segues 从每个视图控制器转到其他视图控制器,则可以使用:

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender

您可以在当前控制器的该方法中进行所有检查,并根据用户状态(连接或未连接)返回YES或返回。NO

如果您返回NO,用户将不会导航到 segue 的目标控制器,您可以改为显示 Login 视图控制器。

于 2013-11-04T10:34:15.237 回答