Tag: uistoryboard

如何正确使用导航控制器来实现标签栏控制器

我正在使用Storyboard和Xcode 6.我的Storyboard中有下一个控制器和场景: 具有HomeViewController作为根的UINavigationController 。 HomeViewController有一个button, Show (eg Push) UITabBarController 。 UITabBarController有4个UIViewControllers 。 但是我的问题是,在显示UITabBarController后,在4个UIViewControllers中没有导航栏。 但我认为,如果我Show (eg Push) UITabBarController那么它应该embedded导航控制器,在故事板中的初始控制器。 我对吗? 如果是这样,我怎么能安装导航栏在故事板,因为现在有推动标签栏中,我在故事板上看到的默认栏事件。 我已经select了UIViewController,并在身份检查器中设置模拟度量为Top属性的半透明导航栏,但我认为它应该自动添加到此控制器和标签栏,而无需额外的步骤。 或者我应该添加新的导航控制器的每个标签栏项目将有他们的根视图控制器? 主要问题,为什么我看不到导航栏使用显示(例如推)故事板。 例如,如果我添加导航控制器,然后设置为根标签栏控制器,然后Xcode自动添加顶部导航栏,但如果队列有一个额外的步骤像在我的情况HomeViewController顶部导航栏永远不会自动出现。

如何使用Storyboard实现自定义表格视图部分页眉和页脚

不使用故事板,我们可以简单地将UIView拖到canvas上,然后将其放置在tableView:viewForHeaderInSection或tableView:viewForFooterInSection委托方法中。 我们如何用StoryBoard来完成这个工作,我们不能将UIView拖到canvas上

在Swift中在视图控制器之间传递数据

我想转换一个应用程序从Objective-C到Swift,但我找不到如何使用Swift在视图之间传递数据。 我的Objective-C代码是 UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; AnsViewController *ansViewController; ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"]; ansViewController.num = theNum; [self presentViewController:ansViewController animated:YES completion:nil]; 这样做基本上是把variables,theNum,并把它传递给variablesnum,在不同的视图控制器上。 我知道这可能是一个简单的问题,但我对Swift很困惑,所以如果有人可以解释他们如何将其改变为Swift,将不胜感激! 谢谢

Storyboardlogin屏幕的最佳实践,处理注销时清除数据

我正在构build一个使用Storyboard的iOS应用程序。 根视图控制器是一个选项卡栏控制器。 我正在创buildlogin/注销过程,它大部分工作正常,但我有几个问题。 我需要知道设置所有这一切的最佳方式。 我想完成以下内容: 首次启动应用时显示login屏幕。 login时,转到选项卡栏控制器的第一个选项卡。 之后,他们随时启动应用程序,检查它们是否已login,然后直接跳到根标签栏控制器的第一个选项卡。 当他们手动点击注销button时,显示login屏幕,并清除视图控制器中的所有数据。 到目前为止,我所做的是将根视图控制器设置为Tab Bar Controller,并为我的Login视图控制器创build了一个自定义的Segue。 在我的Tab Bar Controller类中,我检查他们是否在viewDidAppear方法内部login,并执行segue: [self performSegueWithIdentifier:@"pushLogin" sender:self]; 我还设置了一个通知,说明何时需要执行注销操作: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; 注销时,我清除Keychain中的证书,运行[self setSelectedIndex:0]并执行segue以再次显示login视图控制器。 这一切工作正常,但我想知道: 这个逻辑应该在AppDelegate? 我也有两个问题: 他们第一次启动应用程序时 ,Tab Bar控制器在执行Segue之前短暂显示。 我试着把代码移动到viewWillAppear但是segue不会那么早。 当他们注销时,所有的数据仍然在所有的视图控制器内。 如果他们login到一个新帐户,旧帐户数据仍然显示,直到他们刷新。 我需要一种方法来清除这个容易注销。 我愿意对此进行修改。 我已经考虑使login屏幕的根视图控制器,或在AppDelegate中创build一个导航控制器来处理一切…我只是不知道什么是最好的方法是在这一点上。

什么是放松的过程,你如何使用它们?

iOS 6和Xcode 4.5有一个新function,称为“解开Segue”: 展开细节可以允许转换到故事板中现有的场景实例 除了Xcode 4.5的发行说明中的​​这个简短的入口外,UIViewController现在似乎还有一些新的方法: – (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender – (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender – (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier 放松的过程如何工作,他们可以用来做什么?

Xcode 6奇怪的Bug:Interface Builder文件中的未知类

我升级到Xcode 6testing版4,现在我的应用程序不断崩溃的消息 Interface Builder文件中未知的类X. 它崩溃,因为据说Xcode无法find我的故事板中链接的自定义类,但它显示它们在Xcode界面中正确链接。 我花了几个小时试图弄清楚,但没有任何工作! 我很积极,一切正确。 我唯一的select可能是删除整个故事板文件,并从头开始,因为它可能会损坏。 编辑:我也想补充说,我试图清洗,重置模拟器,搞乱build设阶段等没有任何工作。

使用故事板以编程方式设置初始视图控制器

如何以编程InitialViewController为Storyboard设置InitialViewController ? 我想打开我的故事板到一个不同的视图,取决于从发射到发射可能有所不同的一些条件。