這可能很難解釋。按鈕按下方法位置
基本上我有以下結構到我的項目:
我有一個對象(圖形),其控制其他對象(節點)和(弧)。
一切工作正常,但我發現需要添加按鈕到我的節點對象。這也工作得很好,我有一個NSLog輸出讓我知道哪個節點已被選中等我的問題是,我只想要一次選擇一個節點。我的節點對象的初始化代碼如下:
- (id) initNodeWithData:(NSString *) _label: (int) _xpos: (int) _ypos
{
if(self = [super init])
{
//other variable inits here...
[self setButton: [UIButton buttonWithType:UIButtonTypeCustom]];
[button setImage:[UIImage imageNamed:@"node.png"]
forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"node.png"]
forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"nodeSelected.png"]
forState:UIControlStateSelected];
[button setImage:[UIImage imageNamed:@"nodeSelected.png"]
forState:(UIControlStateHighlighted|UIControlStateSelected)];
[button addTarget:self
action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)buttonPressed
{
NSLog(@"%@ Pressed", label);
if(button.selected == YES) button.selected = NO;
else if(button.selected == NO) button.selected = YES;
}
因爲我的節點對象是獨立的形式相互我不能(我不認爲我可以無論如何)測試,看是否有其他節點已經在進行選擇之前選擇。
理想我想是這樣的:
- (void)buttonPressed
{
//Check to see if other nodes are selected
//If not, button.selected = yes
//else clear other buttons
//then select current button
}
但我想我需要這個代碼在我的viewController類,那裏有我的所有其他代碼是的,我不知道該怎麼做,因爲我認爲這是全部超出範圍。
對不起,這不是很清楚,很難解釋!
得到它的工作! :)我想我做了你提出的另一種方法,我對客觀C很陌生,所以我不得不做一些關於NSNotification的例子,以及如何使用它,但現在它效果很好! :)非常感謝您的幫助,對您的讚美先生! – 2010-10-26 11:43:49