2012-06-28 3 views
0

У меня есть вид навигации, когда я нажимаю, я просто показываю номер строки.навигация вид не работает первый клик

В MainView:

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

if (read == nil) { 
    readNotice *aController = [[readNotice alloc]initWithNibName:@"readNotice" bundle:nil]; 
    self.read = aController; 
} 

[read updateRowNumber:indexPath.row]; 

[[self navigationController] pushViewController:read animated:YES]; 

и в моем readNotice классе:

-(void)updateRowNumber:(int)theindex { 

rowNumber = theindex + 1; 

message.text = [NSString stringWithFormat:@"row %i was clicked", rowNumber]; 

NSLog(@"view did load row = %d", rowNumber); 

} 

readNotice.xib только содержимое этикетки.

Первый раз, когда я нажимаю на него, отображается «Ярлык», но он выполняет следующие попытки.

Предполагаю, что мне нужно инициировать то, что я пропустил, но я не могу его найти.

Спасибо заранее

+0

Это новый контроллер представления открыт или нет При нажатии на ячейку? –

ответ

2

я м не в состоянии понять, почему вы сделали прочитать переменную ....? использовать это ..

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

    readNotice *aController = [[readNotice alloc]initWithNibName:@"readNotice" bundle:nil]; 
    [self.navigationController pushViewController:aController animated:YES]; 
    [aController updateRowNumber:indexPath.row]; 
} 

может это поможет ...

+0

это действительно работает !! благодаря! – user1256477

+0

вы можете проголосовать, что поможет другим .. :) – Abhishek

+1

и ваш приветственный брат :) – Abhishek

0

Применение -

if (self.read == nil) { 
    readNotice *aController = [[readNotice alloc]initWithNibName:@"readNotice" bundle:nil]; 
    self.read = aController; 

} 
-------- 
--------- 

[[self navigationController] pushViewController:self.read animated:YES]; 
+0

это не отображает ничего !!! – rakeshNS

+0

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

+0

бывает такое же – user1256477

0

Попробуйте, в Tableview: метод didSelectRowAtIndex,

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

if (read == nil) { 
    readNotice *aController = [[readNotice alloc]initWithNibName:@"readNotice" bundle:nil]; 
    self.read = aController; 
} 

read.index = indexPath.row; 
[[self navigationController] pushViewController:read animated:YES]; 

создать переменную экземпляра в readNotice в

 @property(assign) int index; 

    @synthesize index; 

В readNotice viewDidLoad met корыто, вы просто звоните updateRowNumber

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self updateRowNumber:index]; 
} 

Он будет отображать номер, как вы ожидали

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