Почему бы не сохранить вторые (больше, если нужно) параметры в чем-то вроде NSMutableArray?
NSMutableArray *button_to_page = [[NSMutableArray alloc] init];
...
for(...)
{
// Your button creation code
[button_to_page addObject:[NSNumber numberWithInt:my_button.tag];
}
Вы можете получить номер своей страницы в любое время, просто проиндексировав массив button_to_page.Вы также можете найти в массиве номер страницы и получить индекс кнопки (при необходимости).
Теперь, сказав, что здесь вы создаете новый объект NSNumber для тега страницы каждой кнопки, а также переносите вокругNSMutableArray для загрузки.Я действительно думаю, что подкласс UIButton - это путь.Мне не нравится идея кодировать вещи в один тег, если нет веской причины.Если вы подкласс, вы все еще сохраняете UIButton довольно легковесным, и все ваши данные очень четко инкапсулированы в одном и том же объекте:
MultiTag_UIButton.h
#import <Foundation/Foundation.h>
@interface MultiTag_UIButton : UIButton {
}
@property (nonatomic, assign) int page;
@end
MultiTag_UIButton.m
#import "MultiTag_UIButton.h"
@implementation MultiTag_UIButton
@synthesize page;
@end
Это действительно так просто, вам не нужно писать какой-либо код, просто добавьте свойство страницы, и вы начнете участвовать в гонках.Тогда вы можете сделать это:
MultiTag_UIButton *test_button = [[MultiTag_UIButton alloc] init];
test_button.tag = 1;
test_button.page = 23;
NSLog(@"tag %i page %i", test_button.tag, test_button.page);
[test_button release];
Чисто и просто.Реально вам нужно было бы сделать немного больше в новом классе, но вы поняли.