2011-08-12 50 views
1

我对某个项目的iPhone iOS4的和Xcode 4两个按钮在两个差的看法,作为一个按钮

我的应用程序使用了两个视图有两个视图控制器一个的TabBar。

我想以编程方式在视图中创建按钮并在其他视图中具有相同的按钮。

对于“相同按钮”,我的意思是按钮具有相同的背景图片,相同的标题等。此外,当我以编程方式更改第一个按钮标题也第二个按钮标题更改;同样的背景。

我在想“传递指针”,但我不知道该怎么做,如何将一个指针从一个视图传递到另一个视图。 (我有一个单例GlobalData,如果它可以帮助。)

谢谢。

+0

新文件 - > UIButton的子类。然后在需要的地方包含并使用自定义的UIButton对象。 – mattacular

回答

2

你想要做的是创建一个自定义的UIButton,然后在需要它的地方使用它。一旦你在它的实现文件中改变它,它将在全球范围内改变。

例的CustomButton

//CustomButton.h 

#import <UIKit/UIKit.h> 

@interface CustomButton : UIButton{ 

} 
@end 


//CustomButton.m 

#import "CustomButton.h" 

@implementation CustomButton 

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     self.type = UIButtonTypeCustom; 
     self.frame = CGRectMake(170, 45, 150, 40); 
     [self setTitle:@"Title" forState:UIControlStateNormal]; 
     [self.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15]]; 
     [self setBackgroundImage:[UIImage imageNamed:@"bg_image.png"] forState:UIControlStateNormal]; 
    } 

    return self; 
} 

@end 

然后使用它像这样:

#import "CustomButton.h" 

... 

CustomButton *myButton = [[CustomButton alloc] init]; 
0

虽然这种方法看起来有点阴暗的,但我不知道有什么用例是如此这里不言而喻。

您可以创建一个UIButton子类并使其成为一个单例。或者将其存储在AppDelegate中。

有趣的是,当您将相同的对象添加到第二个视图时,它将从第一个视图中删除!因此,当ViewController的viewWillAppear:方法被调用时,您将不得不将其添加回视图。

+0

澄清:我只是建议这样做,因为您希望对一个ViewController中的按钮进行的​​更改反映在另一个按钮上。 如果你不想要这样做,只需做@Cyprian说的 – Abhinit

+0

澄清:这两个视图以两种不同的方式(图形和表格)表示相同的东西。该按钮更改参数,因此图形和表格表示都会更改。当我在图形表示的视图中时,以及在另一个视图中时,我希望能够在按钮上点击。 – boscarol