Параметры в методе init AlertView - PullRequest
0 голосов
/ 29 октября 2011

Я хотел бы знать, есть ли способ передать параметры в конструкторе UIAlertView, отличном от такового в initWithTitle.В частности, я хотел бы передать NSArray.Является ли это возможным?Это код:

@implementation UIAlertTableView


- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {


    array=[NSArray arrayWithObjects:@"Capitaliz. semplice",@"Capitaliz. composta",@"Pagamenti rateali",@"Bond", nil];

    table = [[UITableView alloc] initWithFrame:CGRectZero  style:UITableViewStylePlain];

    table.delegate=self;
    table.dataSource=self;


    [self addSubview:table];
}
return self;
}

Спасибо

Ответы [ 3 ]

1 голос
/ 29 октября 2011

Всякий раз, когда вы задаете себе такой вопрос, ищите "[UIClassName] ссылка на класс"

Ссылка на класс UIAlertView:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAlertView_Class/UIAlertView/UIAlertView.html

Для инициализации требуетсяNSString, а не массив строк:

- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate     cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...
0 голосов
/ 23 ноября 2011

Постер решил свою проблему по-другому. Но да, простая категория будет работать и работать хорошо. Это может быть реализовано таким образом.

-(id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitlesArray:(NSArray *)otherButtonTitles{
    if ((self = [self initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:nil])){
        for (NSString *buttonTitle in otherButtonTitles) {
            [self addButtonWithTitle:buttonTitle];
        }
    }
    return self;
}

Этот метод принимает последний параметр. Массив NSStrings и итеративно добавляет кнопки с названиями строк.

0 голосов
/ 01 ноября 2011

Я решил, все равно спасибо:

#import "UIAlertTableView.h"



@implementation UIAlertTableView

@synthesize tableSelected,fontSize;

- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
    c=0;    

    table = [[UITableView alloc] initWithFrame:CGRectZero  style:UITableViewStylePlain];

    table.delegate=self;
    table.dataSource=self;


    [self addSubview:table];
}
return self;
}

- (void)setFrame:(CGRect)rect {
if (c==0) 
    c++; 
else if(c==1){
    if([tableSelected isEqualToString:@"categorie"])

        array=[NSArray arrayWithObjects:@"Capitalizzazione semplice",@"Capitalizzazione composta",@"Pagamenti rateali",@"Bond",  nil];

    else if([tableSelected isEqualToString:@"tassi"])

        array=[NSArray arrayWithObjects:
               @"Tasso effettivo annuo",
               @"Tasso effettivo mensile",
               @"Tasso effettivo bimestrale",
               @"Tasso effettivo trimestrale",
               @"Tasso effettivo quadrimestrale",
               @"Tasso effettivo semestrale",
               @"Tasso nominale convertibile mensilmente",
               @"Tasso nominale convertibile bimestralmente",
               @"Tasso nominale convertibile trimestralmente",
               @"Tasso nominale convertibile quadrimestralmente",
               @"Tasso nominale convertibile semestralmente",
               nil];

    else if([tableSelected isEqualToString:@"rate"])


        array=[NSArray arrayWithObjects:
               @"Rata annuale",
               @"Rata mensile",
               @"Rata bimestrale",
               @"Rata trimestrale",  
               @"Rata quadrimestrale",  
               @"Rata semestrale",  
               nil];
    [table reloadData];
    [table selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0];
    c++;
}
[super setFrame:CGRectMake(0, 0, rect.size.width, 300)];
self.center = CGPointMake(320/2, 480/2);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...