我正在使用Parse,并且我在应用程序中实现的一件事是它们的内置PFLogInViewController
。该控制器将在应用程序中显示两次 - 当应用程序第一次启动并且用户未登录时,以及用户点击我的应用程序的“Log out
”按钮时(退出时会将它们带回到PFLogInViewController
,因为您需要登录才能使用该应用)。
我想用Storyboard
来设置它,因为我的应用程序的其余部分是如何布置的。
如何设置在这两次访问的中央视图控制器(PFLogInViewController
)?我已经Subclassed PFLogInViewController
并设置它,我只需要建议如何将它放在Storyboard
以及如何将它连接到我的意见。
为了让这个问题尽可能多的帮助我,我的问题的总体主题是如何建立一个中心Login/ViewController
,可以在应用程序的不同点使用Storyboard
访问。
附加是我想要完成的基本想法。我还没有成功地继续使用最初的TabBarController,而且我不知道如果我无法继续使用LoginController作为初始ViewController,我该如何做。
我在Swift编程,如果它很重要。 在故事板中创建中央注销视图控制器
回答
根据您的应用,有几种方法可以做到这一点。一种方法是将一个UIViewController拖放到故事板上,但不要将它连接到任何东西(不是segue)。为它创建一个故事板ID,如“MyLoginVC”。做UIViewController的必要的子类化并将类附加到你的VC。然后,当你想要显示的VC简单地做下面的连接谁给你的注销按钮
id destinationVC = [self.storyboard instantiateViewControllerWithIdentifier:@"MyLoginVC"];
[self.navigationController pushViewController:destinationVC animated:YES];
另外,如果你想显示登录VC的第一个VC,当您启动应用程序,那么也许在你的AppDelegate
// Load Root view controller
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.rootVC = [storyboard instantiateInitialViewController];
self.window.rootViewController = _rootVC;
[self.window makeKeyAndVisible];
// Load Login view controller
id initialVC = [storyboard instantiateViewControllerWithIdentifier:@"MyLoginVC"];
[initialVC setModalPresentationStyle:UIModalPresentationFullScreen];
[_rootVC presentModalViewController:initialVC animated:NO];
当您与您的登录VC完成(即成功登录),然后登录内VC
[self dismissViewControllerAnimated:NO completion:nil];
还或者实例化与someth第一个VC从登录VC内部类似于以下内容。请注意,由于您首先将根VC加载到上面,因此它已经在那里,并且登录VC位于其上。当你关闭登录VC时,底层的VC应该准备好摇摆和滚动。否则,您可以执行以下操作:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
RootTabBarController *tbController = (RootTabBarController *)[self.storyboard instantiateViewControllerWithIdentifier:@"rootTabBarController"];
[self presentViewController:tbController animated:YES completion:NULL];
}
我想你想要的是放松的继续。下面是我遵循的开卷赛格瑞的说明:https://github.com/bradley/iOSUnwindSegueProgramatically
如果链接死了,这里就是它说:
在你的故事板创建两个视图控制器。
子类UIViewController两次,一次用于故事板中的每个视图控制器。
将这些视图控制器连接到故事板中的视图控制器。
在第一个视图控制器和第二个视图控制器之间通过控制+从第一个拖动到第二个视图控制器。
点击您创建的segue并在属性检查器中给它一个标识符。
在第一个视图控制器上创建一个按钮,并将其链接到其UIViewController子类中的IBAction。
当按下此按钮时,应出现第二个故事板。要做到这一点(我们在编程这样做)把下列刚才创建的动作的实现:
[self performSegueWithIdentifier:@"nameOfTheSegueBetweenOneAndTwo" sender:self];
与下列创建的第一个视图控制器的FPGA实现第二个方法:
- (IBAction)returnToStepOne:(UIStoryboardSegue *)segue {
NSLog(@"And now we are back.");
}
此方法将解除任何视图控制器回到此视图控制器。请注意,我们在视图控制器中实现了我们希望返回的方法。
回到故事板。关注第二个视图控制器。如果它处于活动状态,则应在其下方看到一个带有3个符号的黑条。其中一个是橙色的,并且在悬停时会显示该视图控制器所代表的UIViewController子类的名称。从这个符号控制拖动绿色符号,这意味着'退出'。您应该看到所有可用的segue展开,当您在您的条痕板上显示的UIViewController子类中创建Segue展开实现时,XCode会自动枚举这些展开。因此,您应该看到segue'returnToStepOne'作为选项。选择它。
在故事板的文档大纲中,找到第二个视图控制器的部分。您应该看到下面列出的一个项目,其中带有一个灰色的符号,表示“将...从退出...退出”。点击这个项目。
重要且容易遗漏的步骤如下!
在故事板的右侧,在属性检查器中,您应该看到两个字段。一个用于“标识符”,另一个用于“操作”。在大多数情况下,'行动'字段将有文本'returnToStepOne:',这是我们想要的,但'标识符'字段将是空白的。用这个文本填充这个字段:'returnToStepOne'(注意我们省去了冒号)。
在第二个视图控制器上创建一个按钮,并将其链接到其UIViewController子类中的IBAction。
在刚刚创建的方法实施,把下面的代码:
[self performSegueWithIdentifier:@"returnToStepOne" sender:self];
运行应用程序。你现在应该能够从第二个视图控制器放松到第一个。
- 1. 故事板 - 视图控制器中的导航控制器
- 2. 故事板视图控制器到编码视图控制器
- 3. 如何修改故事板创建的视图控制器?
- 4. 故事板和视图控制器
- 5. iOS 5故事板 - 视图控制器中的表格视图
- 6. 使用Typhoon和Swift从故事板注入视图控制器
- 7. 台风从故事板向视图控制器注入财产
- 8. UITableViewCell故事板注册取决于初始视图控制器?
- 9. 故事板:更改故事板中指定的UINavigation控制器的根视图
- 10. 如何将创建的视图控制器整合到故事板中?
- 11. 在Xcode 5中旋转故事板视图控制器
- 12. 故事板中的视图控制器在哪里启动?
- 13. 在故事板中呈现自定义视图控制器?
- 14. 在故事板中更改视图控制器
- 15. 故事板 - 视图控制器到标签栏控制器
- 16. 故事板中的容器视图与创建的视图控制器的视图有何不同?
- 17. 构建时移除故事板视图控制器iOS
- 18. 故事板 - 在故事板中为同一个ViewController创建多个视图
- 19. 详细视图控制器从表视图控制器没有故事板?
- 20. 如何xib视图控制器推动故事板视图控制器
- 21. 带有类别的故事板中的表视图控制器
- 22. 如何移回故事板中的根视图控制器?
- 23. 故事板中的源和目标视图控制器
- 24. 更改故事板中的初始视图控制器
- 25. 故事板视图控制器中的透明背景
- 26. 故事板中的根视图控制器
- 27. 模态视图控制器与iOS6中的故事板
- 28. 代表故事板中的自定义视图控制器
- 29. 如何设置故事板中子视图的控制器?
- 30. 用故事板中的xib调用视图控制器?
真棒!我结束了对初始视图控制器和注销按钮的模式视图控制器实现。非常感谢你的回应! – dcgoss 2014-08-28 16:58:47