iphoneアプリでコントロールを動的に生成・削除

ボタンを適当に複数生成して、押されると削除される例です。

ちょっとまだObjective-Cの勉強始めたばかりなので、メモリ管理とか大丈夫かわかりませんが。
適当に注意しながら参考にしてくださいw

ボタン管理用の連想配列用意
【ヘッダファイル】

NSMutableDictionary *buttons;
int button_id;

【実装ファイル】
viewDidLoadとかで

buttons = [[NSMutableDictionary alloc] init];
for(int i=0;i<3;i++) {
    int pos[] = {10,30*i};
    [self makeButton:[NSString stringWithFormat:@"label %d", i] position:pos];
}

ボタン作成と配列への登録を行うメソッド

- (void)makeButton:(NSString *)label position:(int *)pos {
  UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  button.frame = CGRectMake(pos[0], pos[1], 100, 30);  // x(左0) y(上0) width height
  button.tag   = button_id; // 識別用ID
  [button setTitle:label forState:UIControlStateNormal];
  [button addTarget:self action:@selector(pushed_button:)
  forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:button];
  [buttons setObject:button forKey:[NSString stringWithFormat:@"%d", button_id++]];
}

押されると削除されるイベント関数

-(void)pushed_button:(id)sender {
	int num = [sender tag];	
	// 該当ボタンの検索
	if ([[buttons allKeys] containsObject:[NSString stringWithFormat:@"%d", num]]) {
		NSLog(@"Delete");
		// ボタンの削除
		UIButton *button = [buttons objectForKey:[NSString stringWithFormat:@"%d", num]];
		[button removeFromSuperview];
		// リストからも除去
		[buttons removeObjectForKey:[NSString stringWithFormat:@"%d", num]];
	}
}