Наличие одного метода для сохранения введенного текста в строку и вывода на экран листа uiaction, который затем изменит строку в зависимости от того, какая кнопка выбрана - PullRequest
0 голосов
/ 01 марта 2012

У меня есть метод, который должен сохранить то, что введено в текстовое поле, в виде строки (позже для сохранения в NSMutableArray), а затем вызвать лист действий после выхода из текстового поля, которое будет дополнительно указывать строку в зависимости от того, какой кнопка нажата. Пожалуйста помоги! Я учусь в старшей школе и пытаюсь написать программу для своего старшего проекта, так что любая помощь очень ценится! Спасибо!

@implementation EnteringCoursesViewController

@synthesize classField;
@synthesize indicatedClass;
@synthesize labelClassTitle;
@synthesize selectRotationController;
@synthesize classesEnteredTable;
- (IBAction)classFieldDoneEditing:(id)sender 
            withActionSheet:(UIActionSheet *)typeSheet 
            clickedButtonAtIndex:(NSInteger)buttonIndex
{
    self.indicatedClass = classField.text;
    NSString *greeting = [[NSString alloc] 
                          initWithFormat:@"%@", indicatedClass];
    labelClassTitle.text = greeting;
    labelClassTitle.hidden = NO;
    [greeting release];
    [sender resignFirstResponder];

    typeSheet = [[UIActionSheet alloc]
                                initWithTitle:@"Class types"delegate:self
                                cancelButtonTitle:nil
                                destructiveButtonTitle:nil
                                otherButtonTitles:@"Core Class", @"Elective", nil];
    [typeSheet showInView:self.view];
    [typeSheet release];

    if (buttonIndex == 0) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc]       
                              initWithFormat:@"%@ meets 6 times per rotation",     indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    }

    else if (buttonIndex == 1) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc] 
                              initWithFormat:@"%@ meets 3 times per rotation", indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    } 


}

Комментарии только к теоретическому подходу полезны, но, поскольку я настолько новичок в этом, я бы хотел получить конкретное кодирование, спасибо.

@interface EnteringCoursesViewController : UIViewController {
    UILabel             *labelClassTitle;
    NSString            *indicatedClass;
    UITextField         *classField;
    UIViewController    *selectRotationController;
    UITableView         *classesEnteredTable;
}
@property (nonatomic, retain) IBOutlet UILabel      *labelClassTitle;
@property (nonatomic, copy) NSString                *indicatedClass;
@property (nonatomic, retain) IBOutlet UITextField  *classField;
@property (nonatomic, retain) UIViewController      *selectRotationController;
@property (nonatomic, retain) IBOutlet UITableView  *classesEnteredTable;

- (IBAction)chooseFirstMeeting:(id)sender;
- (IBAction)classFieldDoneEditing:(id)sender withActionSheet:(UIActionSheet *)typeSheet 
             clickedButtonAtIndex:(NSInteger)buttonIndex; 

1 Ответ

0 голосов
/ 01 марта 2012

Вы можете перенести методы to в один, добавив несколько аргументов к своему действию, которое связано с кнопкой. Код должен быть примерно таким:

- (IBAction)cassFieldDoneEditing:(id)sender 
            withActionSheet:(UIActionSheet *)typeSheet 
            clickedButtonAtIndex:(NSInteger)buttonIndex
{
    self.indicatedClass = classField.text;
    NSString *greeting = [[NSString alloc] 
                          initWithFormat:@"%@", indicatedClass];
    labelClassTitle.text = greeting;
    labelClassTitle.hidden = NO;
    [greeting release];

    [sender resignFirstResponder];
    UIActionSheet *typeSheet = [[UIActionSheet alloc]
                                initWithTitle:@"Class types"delegate:self
                                cancelButtonTitle:nil
                                destructiveButtonTitle:nil
                                otherButtonTitles:@"Core Class", @"Elective", nil];
    [typeSheet showInView:self.view];
    [typeSheet release];



    if (buttonIndex == 0) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc] 
                              initWithFormat:@"%@ meets 6 times per rotation",     indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    }

    else if (buttonIndex == 1) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc] 
                              initWithFormat:@"%@ meets 3 times per rotation", indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    } 

    [theSmallArray addObject:indicatedClass];

}

Поскольку я не проверял код, могут быть ошибки. Просто сообщите, если у вас есть проблемы, хорошо?

...