2012-05-01 3 views
0

У меня есть навигационный контроллер с корнем и вторым представлением. второй вид содержит pickerview, где пользователь может установить значение от 0 до 9. Я сохраняю это значение в nsuserdefaults и будет использовать его для numberofrowsinsection в tableview на rootviev. Я извлекаю pickervalue из пользовательских прав и устанавливаю его в NSInteger. NSLog показывает мне правильное значение, но в качестве возвращаемого значения для таблицы -> нет строк. tableview работает, возвращаемое значение (например) 4 показывает мне 4 строки ...TableView не показывает строки

любые идеи для меня?

здесь rootview:

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
     return retValv ; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath 
{ 
UITableViewCell *cell; 
cell = [UITableViewCell alloc]; 
cell = [cell initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 
cell.textLabel.text = @"Test"; 
return cell; 
} 


-(IBAction)switch1:(id)sender { 
secondView *second=[[secondView alloc]initWithNibName:@"secondView" bundle:nil]; 


[self.navigationController pushViewController:second animated:YES]; 

} 

-(IBAction)showLog:(id)sender 
{ 
NSLog(@"retValv is dzt. %i",retValv); 

} 

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

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
retValv = [defaults integerForKey:@"myInt"]; 
} 
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
self.title = @"Locations"; 
} 

- (void)viewDidUnload 
{ 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:  (UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

и secondview:

#import "secondView.h" 


@interface secondView() 

@end 

@implementation secondView 


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView 
{ 
return 1; 
} 

-(NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:  (NSInteger)component 
{ 
return 10; 
} 
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row  forComponent:(NSInteger)component 
{ 
return [NSString stringWithFormat:@"%i",row]; 
} 
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component 
{ 
NSLog(@"Gewählt: Zeile %i",row); 

zeile = row; 


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setInteger:row forKey:@"pickerRow"]; 
[defaults setInteger:zeile forKey:@"myInt"]; 
[defaults synchronize]; 

} 

-(IBAction)showInt:(id)sender { 

NSLog(@"show value %i",zeile); 

    } 


- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib. 

self.title = @"Settings"; 


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[picker selectRow:[defaults integerForKey:@"pickerRow"] inComponent:0 animated:NO]; 
zeile = [defaults integerForKey:@"myInt"]; 


} 

- (void)viewDidUnload 
{ 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

@end 
+0

thx! работает отлично! – HugoBoss

+0

Как ваша таблица сообщила, что кто-то использовал сборщик? Я бы ожидал чего-то в 'pickerView: didSelectRow:', чтобы сигнализировать перезагрузку таблицы. –

+0

Другой вопрос: есть ли простой способ перезагрузить табличное представление после переключения с второго на первый? – HugoBoss

ответ

0

По мнению корневого перенесите код для загрузки вашего номера viewWillAppear вместо viewDidAppear. Он загружает номер слишком поздно (после загрузки и отображения таблицы).