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