2013-12-06 4 views
0

В моем приложении есть текстовые поля в другом виде и все они являются частью одного массива, но есть несколько массивов с разными значениями текстового поля. Например, может быть 2 в первом текстовом поле и 5 во втором в одном массиве, а затем 6 в первом текстовом поле и 4 во втором в другом массиве. Когда вы нажмете кнопку saveAs, вы попадете в NameSaveAsView, где есть другое текстовое поле. Это текстовое поле даст имя этому массиву, так что когда вы войдете в OpenShiftView, вы увидите каждое имя в ячейке tableview и можете загрузить массив, который вы хотите. Это код, который я получил до сих пор, который, как я думал, должен работать, но всякий раз, когда я его тестирую, он отлично работает, за исключением того, что OpenShiftView просто загружается с пустыми ячейками. Что не так с моим кодом? Спасибо за любую помощь.Сохранить как возможность с помощью текстовых полей

// 
// NameSaveAsViewController.m 
// ShiftCalculator 
// 
// Created by John on 21/11/2013. 
// Copyright (c) 2013 John. All rights reserved. 
// 

#import "NameSaveAsViewController.h" 

@implementation NameSaveAsViewController 
@synthesize saveAsText, normalWage, overtimeWage, mondayNormalTime, mondayOverTime, 
tuesdayNormalTime, tuesdayOverTime, wednesdayNormalTime, wednesdayOverTime, 
thursdayNormalTime, thursdayOverTime, fridayNormalTime, fridayOverTime, 
saturdayNormalTime, saturdayOverTime, sundayNormalTime, sundayOverTime, bonusMoney, 
tArray, string5, mArray; 


-(void)viewDidLoad { 

[super viewDidLoad]; 

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self 
action:@selector(dismissKeyboard:)]; 
[self.view addGestureRecognizer:tap]; 




} 

- (void)dismissKeyboard:(id)sender 
{ 
if ([saveAsText isEditing]) { 
    [saveAsText resignFirstResponder]; 
} 
} 

- (void)textFieldDidEndEditing:(UITextField *)textField { 
saveAsText.placeholder = @"Shift Name"; 
NSString *string5 = saveAsText.text; 

} 

- (void)saveAs:(id)sender 
{ 
[mArray addObject:string5]; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:mArray forKey:@"saveArray"]; 

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:strings forKey:@"saveArray2"]; 
} 
@end 

// 
// OpenShiftViewController.m 
// ShiftCalculator 
// 
// Created by John on 21/11/2013. 
// Copyright (c) 2013 John. All rights reserved. 
// 

#import "OpenShiftViewController.h" 


@implementation OpenShiftViewController 
@synthesize textFields, arr, myMutableArray, myDictionary, defaults; 

- (void)viewDidLoad 
{ 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
myDictionary = [defaults dictionaryRepresentation]; 
self.arr = [defaults arrayForKey:@"saveArray"]; 

} 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 

return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return arr.count; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  
*)indexPath 
{ 

static NSString *CellIdentifier = @"cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (!cell) { 
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle  
reuseIdentifier:CellIdentifier]; 

} 

cell.textLabel.text = [arr objectAtIndex:indexPath.row]; 


return cell; 
} 
@end 
+3

Я действительно не могу понять, чего вы пытаетесь достичь –

+0

Не могу сказать, не видя файл заголовка для 'OpenShiftViewController', но похоже, что вы объявляете локальную переменную' arr', маскирующую переменную экземпляра, также называется «arr». Что произойдет, если вы измените строку в '-viewDidLoad' на' self.arr = [defaults arrayForKey: @ "saveArray"]; 'Также вы назначаете одно значение двум ярлыкам в одной и той же ячейке, что кажется странным, и конец 'viewDidLoad' явно недоделан, так как он вызывает пустой метод. –

+0

Я в основном пытаюсь создать функцию сохранения как функцию с текстовыми полями. – user3076359

ответ

0

Вам необходимо выяснить концепцию локальных переменных. «Arr», который вы определяете в viewDidLoad и «mArray» в textFieldDidEndEditing, существуют только в этих методах. Кажется, у вас есть другие переменные с теми же именами, что и переменные экземпляра, но они не совпадают.

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

+0

Я сделал это, но табличный вид все еще пуст. – user3076359

+0

Если вы обновите свой вопрос с помощью нового кода, возможно, кто-то может понять, что еще не так. –

+0

Я обновил свой код сейчас. – user3076359

Смежные вопросы