【问题标题】:Finding File Owner in Xcode 4.2在 Xcode 4.2 中查找文件所有者
【发布时间】:2011-10-15 01:57:40
【问题描述】:

请看下面的图片,帮我找到班级的文件所有者。

通常我会将我的 UILabel 连接到它,但是,唉,我找不到它。

问题:我应该将我的标签连接到什么?

故事板:

同时类设置为

【问题讨论】:

  • 我认为您应该接受 PREM 提供的答案。

标签: xcode xcode4.2 storyboard


【解决方案1】:

右击Label并连接到View控制器场景

【讨论】:

【解决方案2】:

由于情节提要没有所有者,因此您可以改用视图控制器。

Ctrl 单击(或右键单击)标签,拖动蓝线与橙色的 View Controller 连接。

【讨论】:

    【解决方案3】:

    您已经发现了故事板和 nib 之间的关键区别:加载 nib 时,会指定所有者实例,但故事板未加载所有者,因此故事板中没有文件的所有者。您的 ViewController 实例由情节提要创建并在场景中代理(列为 View Controller),因此您可以在该实例和界面项之间绘制连接。但是,如果您想与情节提要中未表示的已存在实例建立连接,则必须以其他方式(可能通过标签)识别该实例并找到它和运行时,然后在代码中形成连接故事板加载。

    例如,在这段代码中,我手动加载了一个故事板(在弹出窗口中使用其初始场景),然后从其中的一些条形按钮项形成连接:

    UINavigationController* nav = 
        (UINavigationController*)[[UIStoryboard storyboardWithName:@"Storyboard" 
                                                            bundle:nil] 
                                   instantiateInitialViewController];
    
    // there is no file's owner...
    // so we can't just draw the connection from button items to ourself,
    // because we are not proxied in the storyboard
    // so, locate the button items in some other way and do it in code
    
    UIViewController* root = [nav.viewControllers objectAtIndex: 0];
    [root.navigationItem.leftBarButtonItem setTarget:self];
    [root.navigationItem.leftBarButtonItem setAction:@selector(save:)];
    [root.navigationItem.rightBarButtonItem setTarget:self];
    [root.navigationItem.rightBarButtonItem setAction:@selector(cancel:)];
    

    在某些情况下,您可以使用一个技巧将任意现有实例注入到场景中,以便与其建立连接:使该实例成为第一响应者。每个场景中都有一个第一响应者代理,因此可以通过在情节提要中进行绘制来为您提供一些连接。所以,这段代码可以代替上面的代码工作:

    [self becomeFirstResponder];
    UINavigationController* nav = 
        (UINavigationController*)[[UIStoryboard storyboardWithName:@"Storyboard" 
                                                            bundle:nil] 
                                   instantiateInitialViewController];
    

    (并且场景中的按钮动作连接已经从每个按钮绘制到第一响应者代理对象。)

    【讨论】:

    • 我不太明白这个答案。如何准确访问标签?一段代码将是最有帮助的。谢谢
    【解决方案4】:

    菜单:导航 - 在项目导航器中显示 在项目导航器中,单击“主情节提要” 菜单:查看 - 显示助理编辑器 您应该在左侧有带有标签的 Storyboard,在右侧有 view controler.h 文本。 单击您的标签,按住控制按钮,然后将一条蓝线拖到右侧的 View Controler.h 源代码中。输入参考名称(例如 myLabel),然后单击连接。

    你会自动看到这样的生成: @property (weak,nonatomic) IBOutlet UILabel *myLabel;

    在 View Controler.m 中,您将看到如下生成的内容: @synthesize *myLabel;

    在您的 IBAction 事件中,您可以设置标签: myLabel.text =

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 2015-04-29
      • 2012-02-09
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多