两个不同视图中的两个按钮,用作单个按钮

时间:2011-08-12 13:30:31

标签: iphone uiview ios4 uibutton

我使用Xcode 4处理iPhone iOS4的项目。

我的应用程序使用tabBar作为两个视图控制器的两个视图。

我想以编程方式在视图中创建一个Button,并在另一个视图中使用相同的按钮。

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

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

谢谢。

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

虽然这种方法看起来有些阴暗,但我不知道用例是什么,所以它就是这样。

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

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