从最初的 View Controller 如何将 acriss 转移到 UITabBarController 并使用 prepareForSegue
Posted
技术标签:
【中文标题】从最初的 View Controller 如何将 acriss 转移到 UITabBarController 并使用 prepareForSegue【英文标题】:From initial View Controller how to segue acriss to a UITabBarController and use prepareForSegue 【发布时间】:2013-12-02 16:06:34 【问题描述】:设置如下:
1) 单视图控制器 - 初始 Cobntroller = 带有按钮。
2) 带有 1 个视图控制器 - 标签的标签栏控制器控制器
当我按下按钮时,它会转到选项卡视图。
现在我想使用 prepareForSegue 传递一个字符串来更新标签栏控制器内的 1 个视图控制器的标签。
当我这样做时,我得到一个
“无法识别的选择器发送到实例”。
所以我转至选项卡视图控制器。
但是我无法在 Tab 中引用 ViewController。
我该如何解决这个问题?
【问题讨论】:
发布完整的错误信息。 【参考方案1】:问题是您不能从单个视图切换到 TabBarController。相反,使用这样的代码:
- (IBAction)setupTapped:(id)sender
static NSString *tabViewControllerIdentifier = @"SetupViewController";
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:tabViewControllerIdentifier];
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *currentController = app.window.rootViewController;
app.window.rootViewController = controller;
app.window.rootViewController = currentController;
[UIView transitionWithView:self.navigationController.view.window
duration:0.75
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^
app.window.rootViewController = controller;
completion:nil];
这将在控制器之间转换。您可以更改动画类型以适合您的目的。这是使用选项参数设置的;当前显示 UIViewAnimationOptionTransitionFlipFromRight。
“SetupViewController”是为 TabViewController 输入到身份检查器(右起第三个图标)中的 Storyboard ID(不带引号)。您可以更改它以匹配您输入的内容。
【讨论】:
什么是 tabViewControllerIdentifier ?我假设那是位于我的 TabViewController 内的“视图控制器”?对于这个视图,我给了它一个名为“TabViewController”的控制器此代码生成以下错误“不包含标识符为“TabViewController”的视图控制器。 在情节提要中,当您单击 ViewController 时,身份检查器(左起第三个图标)有一个称为情节提要 ID 的字段。这是要使用的标识符。在上面的示例中,tabViewController 的 Storyboard ID 为“SetupViewController”(不带引号)。 谢谢。但是,如果我没有将标识符“SetupViewController”放在我的初始视图控制器中,那么我会收到错误“不包含具有标识符 SetupViewController 的视图控制器”。如果我在初始视图控制器中更新 StoryBoard ID,则应用程序不会崩溃,但当我按下按钮时没有任何反应。 为此,您必须在 TabViewController 的 StoryBoard ID 中添加一些内容,初始 ViewController 的故事板 ID 是可选的。完成此操作后,将方法中的“SetupViewController”替换为您提供给 tabViewController 的 ID 好的,所以经过更多测试后,我发现这非常适合单视图控制器到另一个单视图控制器之间的转换。但是,当转到选项卡视图控制器时它不起作用。以上是关于从最初的 View Controller 如何将 acriss 转移到 UITabBarController 并使用 prepareForSegue的主要内容,如果未能解决你的问题,请参考以下文章
如何将 CloudKit 记录数据从“TableView-Controller B”传递到“View-Controller C”?
如何使用 ajax get 将数据从 View 传递到 Controller 或使用参数在 mvc 中发布
如何使用Swift 4将数据从Pop-Over子视图传递到View Controller
使用委托将数据从 Collection View Controller 传递到 View Controller