Хотите данные из выбранного файла, нажав конкретную кнопку - PullRequest
0 голосов
/ 17 августа 2011

Я новичок в iPhone и создаю приложение для iPhone, в котором я использую простой текстовый файл в качестве базы данных.
В firstView у меня есть четыре кнопки UIB.У меня есть четыре разных текстовых файла.
То, что я хочу, это когда я выбираю button1, тогда данные из file1.txt будут загружаться так же, как когда я выбираю button2, button3 и button4, данные из файла2, file3, file4 будут загружаться соответственно.

Примерно так:

if(categoryVC.Quiz1btn isSelected == YES){
NSBundle *bundle = [NSBundle mainBundle];
NSString *textFilePath = [bundle pathForResource:@"file1" ofType:@"txt"];
NSString *fileContents = [NSString stringWithContentsOfFile:textFilePath encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfFile:textFilePath encoding:NSUTF8StringEncoding error:nil];
NSArray *quizArray = [[NSArray alloc] initWithArray:[fileContents componentsSeparatedByString:@"\n"]];
self.theQuiz = quizArray;
}

но это не работает.

Любая помощь будет оценена.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Что вы можете сделать, это добавить атрибут (NSString *) имени файла во второй viewController и передать имя кнопки выбранного файла, как показано в первом контроллере представления:

-(IBAction)selectFile1Action:(id)sender {
SecondViewController *scView = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil];
scView.filename = @"file1";
[[self navigationController] pushViewController:scView animated:YES];
[scView release];

}

и т. Д. ...

И в функции viewDidLoad контроллера второго представления добавьте следующий код:

- (void)viewDidLoad {

[super viewDidLoad];
NSBundle *bundle = [NSBundle mainBundle]; 
NSString *textFilePath = [bundle pathForResource:filename ofType:@"txt"]; 
NSString *fileContents = [NSString stringWithContentsOfFile:textFilePath encoding:NSUTF8StringEncoding error:nil]; 
[NSString stringWithContentsOfFile:textFilePath encoding:NSUTF8StringEncoding error:nil]; 
NSArray *quizArray = [[NSArray alloc] initWithArray:[fileContents componentsSeparatedByString:@"\n"]]; 
self.theQuiz = quizArray;
}
0 голосов
/ 17 августа 2011

По моему мнению, лучше создать четыре функции на вашем контроллере (IBAction) и связать их с вашим представлением в Интерфейсном Разработчике. Функции могут быть такими:

  • (IBAction) selectFile1Action: (id) отправитель { NSBundle * bundle = [NSBundle mainBundle]; NSString * textFilePath = [bundle pathForResource: @ "file1" ofType: @ "txt"]; NSString * fileContents = [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; NSArray * quizArray = [[NSArray alloc] initWithArray: [fileContents componentsSeparatedByString: @ "\ n"]]; self.theQuiz = quizArray; }

  • (IBAction) selectFile2Action: (id) отправитель { NSBundle * bundle = [NSBundle mainBundle]; NSString * textFilePath = [bundle pathForResource: @ "file2" ofType: @ "txt"]; NSString * fileContents = [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; NSArray * quizArray = [[NSArray alloc] initWithArray: [fileContents componentsSeparatedByString: @ "\ n"]]; self.theQuiz = quizArray; }

  • (IBAction) selectFile3Action: (id) отправитель { NSBundle * bundle = [NSBundle mainBundle]; NSString * textFilePath = [bundle pathForResource: @ "file3" ofType: @ "txt"]; NSString * fileContents = [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; NSArray * quizArray = [[NSArray alloc] initWithArray: [fileContents componentsSeparatedByString: @ "\ n"]]; self.theQuiz = quizArray; }

  • (IBAction) selectFile4Action: (id) отправитель { NSBundle * bundle = [NSBundle mainBundle]; NSString * textFilePath = [bundle pathForResource: @ "file4" ofType: @ "txt"]; NSString * fileContents = [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; [NSString stringWithContentsOfFile: кодировка textFilePath: NSUTF8StringEncoding error: nil]; NSArray * quizArray = [[NSArray alloc] initWithArray: [fileContents componentsSeparatedByString: @ "\ n"]]; self.theQuiz = quizArray; }

...