2011-08-12 47 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