我無法連接代碼和.xib文件之間的點。Objective-C:以編程方式從另一個類中添加UIButton
如果我想以編程方式將一系列UIButtons
添加到我的視圖控制器,我將如何從一個單獨的類執行此操作?
例如,如果我有MainViewController.m
,它被設置爲Xcode中的根視圖控制器,我怎樣才能將UIButton
從SecondViewController.m
添加到該視圖控制器?這甚至有可能嗎?
我基本上想把我所有的「用戶界面」代碼放在一個單獨的類中。
感謝
我無法連接代碼和.xib文件之間的點。Objective-C:以編程方式從另一個類中添加UIButton
如果我想以編程方式將一系列UIButtons
添加到我的視圖控制器,我將如何從一個單獨的類執行此操作?
例如,如果我有MainViewController.m
,它被設置爲Xcode中的根視圖控制器,我怎樣才能將UIButton
從SecondViewController.m
添加到該視圖控制器?這甚至有可能嗎?
我基本上想把我所有的「用戶界面」代碼放在一個單獨的類中。
感謝
要做到這一點,創建一個UIButton *myButton
編程,然後調用[mainViewController addSubview:myButton];
。這可能意味着您需要在SecondViewController
類中存儲MainViewController *
資產。
爲UIButton
例如重要的方法和屬性(基本上,只是看看的文件,但這裏有一組最小的東西,讓你開始):
+[UIButton buttonWithType:buttonType]
- 如果你確保」重新遠程執行任何自定義在這裏使用UIButtonTypeCustom
(它不給你任何默認背景圖片或以其他方式必須nil
出)
setFrame:
- 相對於其容器的按鈕,可用性的位置,並設置大小原因width
和height
應至少爲44
像素(如here所述)。
setTitle:forState:
- UIControlStateNormal
將作爲對其他國家的默認屬性,所以你可能只需要在此處設置的文本
setBackgroundImage:forState:
- 使用UIControlStateNormal
和UIControlStateHighlighted
/UIControlStateSelected
爲主,UIControlStateDisabled
如果你想展示它隨時變灰或無法訪問。
setImage:forState:
- 使用一個圖標旁邊的按鈕上的文字(如指向下方的保存箭頭或向上的負載等)
setEnabled:
,setHidden:
,setSelected:
- 不同的按鈕狀態之間的轉換。當你點擊按鈕時,setHighlighted:
會自動發生。
addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside
- TouchUpInside幾乎總是你想要的一個簡單的按鈕按下,我在這裏使用一個名爲buttonClicked:
的方法來處理我的按鈕按下。
哦,如果你使用[[UIButton alloc] initWith...]
一旦它加入到mainViewController
:)
使用本
#import "MainViewController.h"
@interface SecondViewController
{
MainViewController *mainView;
}
@property(nonatomic, retain) MainViewController *mainView;
-(void)addButtons;
在您的實現別忘了[myButton release]
@synthesize mainView;
-(void)addButtons
{
UIButton *add = [UIButton alloc] init];
//do necessary stuff on button here
[self.mainView addSubview:add];
[add release];
}
在您的MainViewcontroller.m中
#import "SecondViewController.h"
-(void)viewDidLoad
{
[self superViewDidLoad];
SecondViewController *second = [SecondViewController alloc] init];
second.mainView = self;
[second addButton];
[second release];
}
爲什麼?你在XIB,控制器和希望有一個單獨的模型中有你的看法。爲什麼控制器和視圖互相捅戳? – bryanmac