ObjC: обновить * метку при возврате из режима редактирования - PullRequest
1 голос
/ 10 декабря 2011

извините за мой плохой английский, если вы меня не понимаете, пожалуйста, спросите!:) У меня проблема с Objective-C.Я пытаюсь объяснить мою проблему как можно проще:

Я сделал два интерфейса 'profile' и 'editProfile' в 'profile.m ". Я хотел бы иметь таблицу (или для начала a *метка) в профиле, затем я могу нажать на «изменить» и заполнить строку TextField. С помощью кнопки «сохранить» я сохраняю эту строку в базе данных (или в переменной extern). Это, конечно, не проблема. Теперьмоя проблема: нажав «сохранить», я хочу вернуться на страницу «профиля», мой код:

[self.navigationController popViewControllerAnimated:YES];

Но я хочу обновить метку IBOutlet UILabel * (или таблицу).* Метка должна отображать текст, который я ввел в TextField в «editprofile». Но он не обновляется! Части моего кода «profile»:

@implementation Profil
@synthesize label;
// ....
-(void) method{
 Database* db = [[Database alloc] init];
 if([db getadresse]!=nil){
    NSString *s=[db getadresse];
    label.text=s;
    [data addObject:s];
    [datadetail addObject:@"Adresse"];}
//...

и «editprofil»:

-(IBAction)save:(id)sender{
 Database* db = [[Database alloc] init];
 [db setadresse:TextField.text]; 
 [self.navigationController popViewControllerAnimated:YES];
 Profile* p= [[Profile alloc] init]; 
 [p method];}

Что я могу сделать для немедленного обновления * ярлыка?

Спасибо!


А как насчет таблицы в «профиле»? Я хочу обновить ееЯ вставил следующие строки в 'ViewWillApear':

data = [[NSMutableArray alloc] init];   //NSMutableArrays
datadetail = [[NSMutableArray alloc] init];

database* db = [[database alloc] init];

if([db getadresse]!=nil){
    NSString *s=[db getadresse];
    [data addObject:s];
    [datadetail addObject:@"Adresse"];}


if([data count]>0){   

UITableView *table = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen]  applicationFrame]
                                                      style:UITableViewStylePlain];
table.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
table.delegate = self;
table.dataSource = self;
[table reloadData];

self.view = table;

}

Итак, таблица (созданная в ViewWillAppear) должна показатьЯ покажу одну запись массива ('[db.getadresse]').Но я получаю исключение:

- [Таблица профиля: numberOfRowsInSection:]: нераспознанный селектор, отправленный экземпляру 0x688d290

NumberOfRowsInSection просто: return [data count]

Можете ли вы сказать мнечто идет не так?Спасибо!

1 Ответ

0 голосов
/ 10 декабря 2011

UIKit отправит сообщение viewWillAppear: на контроллер представления, когда появится его представление.Ваш первый («профиль») контроллер представления может обновить метку при получении этого сообщения:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.label.text = code to get the text from the database;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...