ios - 获取对容器 View View 的引用

标签 ios objective-c uiviewcontroller segue uistoryboardsegue

我是 iOS 应用开发的新手。我已经连接了一个 TableView Controller ,这样当我选择其中一行时,我会使用 didSelectRowAtIndexPath 获得另一个 UIViewController。我在这个 UIViewController 中有一个容器 View ,它显示(暂时说)调用 didSelectRowAtIndexPath 的行的索引。我想使用 segue 来执行此操作,但问题是我不知道如何获取对使用容器 View 形成的 View Controller 的引用。我知道您可以在 prepareForSegue 中使用 segue.destinationViewController 获取目标 View Controller ,但是我如何获取对将因容器 View 而加载的 View Controller 的引用。我正在为 iOS 6 构建应用程序。我还为 UI 使用了 Storyboard。谢谢

编辑:

这个问题基本上归结为如何获取对 UIViewController-1 内的 UIContainerView 指向的 UIViewController-2 的引用。 UIViewController-1 通过选择一行 UITableViewController 触发

UITableViewController (selecting a row to give)---> UIViewController-1 which contains....ContainerView --->UIViewController-2(ViewController associated with ContainerView)

最佳答案

好吧,让我们想象一下这个场景:

storyboard

并且假设您想要使用支持您在 TableView 上点击的单元格的模型数据更新“第二个 View Controller 的子项”上的标签。

你可以做的是:

  1. 为从第一个场景到第二个场景的转场提供唯一标识符(例如 Detail),在第二个 View Controller 中定义一个属性以接收传递给它的值(例如someStringValue), 并编写一个传递值的 prepareForSegue,例如:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"Detail"])
        {
            NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
            [segue.destinationViewController setSomeStringValue:self.objects[indexPath.row]];
        }
    }
    
  2. 为您的嵌入 segue 重复此过程,即为您的嵌入 segue 提供自己的唯一标识符(例如 Embed)并在该“第二个 View Controller 的 subview Controller ” View Controller 中创建一个属性接收传递给它的值(例如 someStringValue),并在第二个 View Controller 中有一个 prepareForSegue 将值传递给它的 subview Controller ,例如:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"Embed"])
        {
            [segue.destinationViewController setSomeStringValue:self.someStringValue];
        }
    }
    

关于ios - 获取对容器 View View 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18672590/

相关文章:

iphone - iOS - 初始化 UIViewControllers

iOS:self.view.bounds 没有填满整个窗口

ios - 无法为 IOS 设置 VLCKit

ios - 使用 Cocos2d-x 打开游戏中心 UI

ios - 代码没有被调用

ios - 在 iOS 中让按钮播放声音

objective-c - Objective-C - 创建文本文件以在 Cocoa 中逐行读写

ios - 解析更新 PFUser 类字符串

ios - 操作系统 X : Scene is unreachable due to lack of entry points

iphone 开发 : how to set a property of an another viewController then reach it