我使用Xcode 4处理iPhone iOS4的项目。
我的应用程序使用tabBar作为两个视图控制器的两个视图。
我想以编程方式在视图中创建一个Button,并在另一个视图中使用相同的按钮。
对于“相同按钮”,我的意思是按钮具有相同的背景图像,相同的标题等。另外,当我以编程方式更改第一个按钮标题时,第二个按钮标题也改变;同样的背景。
我在想“传递指针”,但我不知道怎么做,如何将指针从View传递到另一个View。 (如果可以提供帮助,我有一个单身GlobalData。)
谢谢。
答案 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:方法时,您必须继续将其添加回视图。