Iphone 向UIViewController添加iAction按钮

Iphone 向UIViewController添加iAction按钮,iphone,ios4,uiviewcontroller,uiscrollview,uibutton,Iphone,Ios4,Uiviewcontroller,Uiscrollview,Uibutton,我有一个简单的视图控制器,其中有几个按钮被定义为iActions。我想把它们放在一个滚动视图上,基本上使整个页面可以滚动(假设它们是非常大的按钮,我有一堆)。我该怎么做?我试图添加这些按钮,但由于它们被定义为iAction,所以无法工作 这是我的一些代码。谢谢 - (IBAction) switchFromThird : (id)sender { //some action... } - (IBAction) BackHome : (id)sender { //some ac

我有一个简单的视图控制器,其中有几个按钮被定义为iActions。我想把它们放在一个滚动视图上,基本上使整个页面可以滚动(假设它们是非常大的按钮,我有一堆)。我该怎么做?我试图添加这些按钮,但由于它们被定义为iAction,所以无法工作

这是我的一些代码。谢谢

- (IBAction) switchFromThird : (id)sender
{
    //some action...
}

- (IBAction) BackHome : (id)sender
{
     //some action...   
}

- (void)viewDidLoad
{
     [super viewDidLoad];    

myScroll.contentSize = CGSizeMake(480, 1000);
myScroll.maximumZoomScale = 4.0;
myScroll.minimumZoomScale = 1.0;
myScroll.clipsToBounds = YES;
myScroll.delegate = self;


[myScroll addSubview:switchFromThird]; //???
[myScroll addSubview:BackHome]; //???


[myScroll release];
}

iAction
s不是按钮。它们是经过特殊标记的方法,以便Interface Builder可以轻松找到它们。您仍然需要创建按钮

可以在Interface Builder中执行此操作,方法是将它们从对象库拖动到scrollview上。然后,您可以通过鼠标右键从新按钮拖动到定义
iAction
的对象,将它们连接到
iAction


如果您喜欢以编程方式创建按钮,则需要调用
[[UIButton alloc[init
…然后用按钮的
addTarget:action:forControlEvents:
方法将按钮连接到您的方法。在这种情况下,不必将您的方法声明为
iAction
,这只是苹果公司为了让界面生成器更容易找到相关方法而加入的东西。

iAction
s a它们不是按钮。它们是经过特殊标记的方法,以便界面生成器可以轻松找到它们。您仍然需要创建按钮

您可以在Interface Builder中通过将它们从对象库拖动到scrollview来完成此操作。然后,您可以通过鼠标右键将它们连接到
iAction
,从新按钮拖动到定义
iAction
的对象

如果您喜欢以编程方式创建按钮,则需要调用
[[UIButton alloc[init
…然后用按钮的
addTarget:action:forControlEvents:
方法将按钮连接到您的方法。在这种情况下,没有必要将您的方法声明为
iAction
s。在这种情况下,这只是苹果公司为了让界面生成器更容易找到相关方法而加入的东西。

不,不,不。 请阅读iOS开发者库。您不能将方法(函数)添加到视图中!这就像您希望在打印的文档中有一个计算机程序在一张纸上一样

你应该这样做:

  • .h文件中写入
    ibuibutton*BackHomeButton
  • 打开.xib文件
  • backhome按钮
    插座连接到按钮上
  • [myScroll addSubview:BackHome];
    替换为
    [myScroll addSubview:BackHome按钮];
  • 然后,只有那时它才会工作。正如我说的:你只能打印图像和文本,不能打印计算机程序!

    不,不,不。 请阅读iOS开发者库。您不能将方法(函数)添加到视图中!这就像您希望在打印的文档中有一个计算机程序在一张纸上一样

    你应该这样做:

  • .h文件中写入
    ibuibutton*BackHomeButton
  • 打开.xib文件
  • backhome按钮
    插座连接到按钮上
  • [myScroll addSubview:BackHome];
    替换为
    [myScroll addSubview:BackHome按钮];


  • 然后,只有那时它才会工作。正如我说的:你只能打印图像和文本,不能打印计算机程序!

    “一些被定义为iActions的按钮”…什么?上面的两个iAction都连接到IB上的UIButton。因此,每次单击它们时,都会调用此方法。但在代码中它们没有声明为UIButton。它们没有定义,因为它们不能被定义!“一些定义为iActions的按钮”…什么?上面的两个iBaction连接到IB上的UIButton。因此,每次单击它们时,都会调用此方法。但在代码中它们没有声明为UIButton。它们没有定义,因为它们不能!这就是我所做的-我从IB上的库中拖动这些UIButton并将它们链接起来(通过右键单击等)到相应的iAction。但是,我没有在代码中声明任何UIButton。因此,现在,我有一个视图,其中有几个按钮,每个按钮都链接到IB上的iAction,但没有UIButton声明。所有这些都很好地工作,我只是不知道现在如何将它们添加到我的滚动视图中。如果您在Interface Builder中创建它们,您可以拖动我直接进入scroll视图。你不必通过编程来完成。我就是这么做的——我从IB上的库中拖出了那些UIButton,并将它们链接起来(用鼠标右键单击,等等)到相应的iAction。但是,我没有在代码中声明任何UIButton。因此,现在,我有一个视图,其中有几个按钮,每个按钮都链接到IB上的iAction,但没有UIButton声明。所有这些都很好地工作,我只是不知道现在如何将它们添加到我的滚动视图中。如果您在Interface Builder中创建它们,您可以拖动我直接进入滚动视图。您不必以编程方式进行操作。这很好,但操作如何?我希望有人单击它时发生什么?如何将操作与此按钮关联?在IB中,打开“Outlets”选项卡,并将“Touch Up Inside”与“File’s Owner”连接起来哦,我明白了…所以我需要连接IB上的UI按钮两次…奇怪的是,只需将它连接到一个动作就可以了。现在让我们看看它是否会添加到滚动视图中…谢谢!!!@Kashiv,如果他已经在Interface Builder中创建了按钮,他根本不需要用按钮调用
    addSubview:
    。因此,他不需要挂接在
    IBOutlet
    @TommyG上,如果您以这种方式添加
    IBOutlet
    ,请记住,它将成为您的响应