【问题标题】:Getting objects like button from view. iOS从视图中获取按钮等对象。 iOS
【发布时间】:2011-08-04 18:53:16
【问题描述】:

我在我的 cover.h 文件中为我的第一个视图创建了一个按钮

#import <UIKit/UIKit.h>


@interface cover : UIViewController 
{

     IBOutlet UIButton *Enter;

}

@property (nonatomic, retain) UIButton *Enter;
-(IBAction)buttonpressed:(id)sender;

@end

并通过在小框中选择 File's Owner 将其与界面构建器中的实际按钮连接起来,您可以选择 File's Owner、First Responder 和 View

然后我去cover.m文件并添加以下代码

-(IBAction)buttonpressed:(id)sender
{

      [[NSBundle mainBundle] loadNibNamed:@"nextView" owner:self options:nil];
      NSLog(@"pressed");

}

所以当我转到 nextView.xib 并修改 nextView.m 和 nextView.h 并访问它的按钮并执行我对 cover.xib cover.m 和 cover.h 所做的相同操作时,它无法正常工作.

发生的情况是,当我单击封面视图中的 Enter 按钮时,它会关闭应用程序。直到我将按钮连接到功能和插座时才会发生这种情况(意思是当它只是切换视图而第二个视图没有做任何它会起作用的事情时)

感谢您提供的任何帮助。抱歉,如果我没有提供足够的信息,这有点新,但是当找到更多我应该拥有的信息时,我会添加它。

谢谢

编辑 1:

我没有注意到它说有错误或类似的任何地方。它构建正确

【问题讨论】:

  • 听起来您忘记将 IBAction 连接到按钮,将连接从按钮拖到界面构建器中的文件所有者或急救人员(无论您的应用程序中是否合适)
  • 刚刚检查过。我已将 IBAction 连接到按钮。当它未连接时,应用程序运行并且当我单击输入时,它会转到新视图,但新视图上的按钮不起作用。当我连接它时,它不会转到下一个视图。它会关闭应用程序。

标签: objective-c ios ipad views


【解决方案1】:
  • 类名大写是惯例。我建议CoverViewController。这使得在阅读您的代码时,我们正在查看的内容更加明显。

你在这里的意图是什么?在内容的 nib 之后显示 nib?

每个笔尖的“文件所有者”都是CoverViewController吗?

您实际上所做的是(灾难性地)重新加载了现有控制器的视图。这不会有好的结局。

你想要做的是创建同一个类的另一个实例:

-(IBAction)buttonpressed:(id)sender {
CoverViewController nextController = [[CoverViewController alloc] initWithNibName:@"nextView"];
[navigationController pushViewController:nextController animated:NO];
}

如果您不使用导航控制器,您可能想要使用。 阅读View Controller Programming Guide

【讨论】:

  • 它本质上是一个又一个内容的 nib,只是需要交互的 nib。每个笔尖都有不同的控制器,在 xcode 中,我创建了一个 UIViewController 并检查了 Xib 的用户界面框。问题是我希望能够使用视图中间的按钮进行导航。所以我不想有导航栏。有没有办法隐藏导航栏,并在视图上使用按钮(或者可能与它们一起使用)?
  • 你想要一个导航控制器,你可以隐藏导航栏 - 否则你每次都必须更改根视图控制器(更痛苦)“你可以使用隐藏和显示导航栏navigationBarHidden 属性或 setNavigationBarHidden:animated: 方法。" - UINavigationController Class Ref
  • 但是按钮呢。我有一个用于传输视图的按钮。我将如何使用这些按钮?就像我在代码中显示的输入按钮一样。 (对不起,如果我烦人/愚蠢)
  • 你想像上面那样定位按钮(我编辑了代码使其更明显)
  • 谢谢,很有帮助
猜你喜欢
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多