我的应用程序有一个主登录/密码屏幕,用户可以在其中输入凭据并将信息提交给Web服务。经过身份验证后,Web服务还会告诉我登录的是哪种用户。因此用户可以键入“A”,“B”或“C”。
现在,根据用户的类型,我需要加载不同的视图(具有功能),只有特定类型的用户才能使用。所以我有“A-HOME”“B-HOME”和“C-HOME”的主屏幕,它们将成为导航控制器或标签控制器。
所以基本上如果A登录 - 下一个加载的视图应该是“A-HOME”
我的外行猜测是以编程方式加载视图。但是,我宁愿不这样做,因为你可以忘记几个步骤,泄漏或拧紧应用程序。在这种情况下是否有任何常见的设计模式。这个场景对我来说似乎很常见。在苹果的开发者网站上是否有任何带有示例代码的应用程序可以执行相同的操作?
请提出您的建议。 感谢。
答案 0 :(得分:1)
如果视图“足够不同”,则为每个视图使用不同的视图控制器,并加载适当的视图控制器。如果需要,您可以从笔尖加载整个东西,只需在登录程序后将其连接到代码中,即
-(void) doLogin:(LoginType)loginType
{
if (loginType == LoginTypeA)
{
TypeAViewController *viewController = .... // Load from i.e. "TypeAViewController.nib"
// Add its view
}
}