0

Я строю статью, читающую приложение iOS. В iPad я использую контроллер разделенного вида.
Контроллер главного представления содержит список меню, такой как новости, статьи, медиа и т. Д.
Нажатие на обновление данных списка меню в контроллере подробного представления. Контроллер представления данных (UITableView) содержит список статей, а когда я нажимаю на статью, она открывается в том же представлении (Подробный контроллер представления), я не могу открыть эту статью в новом контроллере представления. enter image description hereКак открыть контроллер подробного представления в новом контроллере?

 - (void)viewDidLoad 
     { 
     [super viewDidLoad]; 
     NSLog(@"dshaghjdaS"); 
     UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20,10,0,20)]; 
     titleLabel.textColor = [UIColor blackColor]; 
      titleLabel.backgroundColor = [UIColor clearColor]; 
     titleLabel.text = @"Story"; 
     [self.navigationItem setTitleView:titleLabel]; 
      BOOL myBool = [self isNetworkAvailable]; 
      if (myBool) 
      { 
      @try { 


       self.clearsSelectionOnViewWillAppear = NO; 
       self.tableView.separatorColor = [UIColor colorWithRed:190/255.0 green:190/255.0 blue:190/255.0 alpha:1.0]; 
     // for displaying the previous screen lable with back button in details view controller 
      UIBarButtonItem *backbutton1 = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:nil]; 

      [[self navigationItem] setBackBarButtonItem:backbutton1]; 


     _Title1 = [[NSMutableArray alloc] init]; 
     _Author1 = [[NSMutableArray alloc] init]; 
     _Images1 = [[NSMutableArray alloc] init]; 
     _Details1 = [[NSMutableArray alloc] init]; 
     _link1 = [[NSMutableArray alloc] init]; 
     _Date1 = [[NSMutableArray alloc] init]; 

     NSData* data = [NSData dataWithContentsOfURL:ysURL]; 
     NSLog(@"uuuuuuuuu%@",ysURL); 
     NSArray *ys_avatars = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

     if(ys_avatars){ 

      for (int j=0;j<ys_avatars.count;j++) 
      { 
       [_Title1 addObject:ys_avatars[j][@"title"]]; 
       [_Author1 addObject: ys_avatars[j][@"author"]]; 
       [_Images1 addObject: ys_avatars[j][@"featured_img"]]; 
       [_Details1 addObject:ys_avatars[j][@"content"]]; 
       [_link1 addObject:ys_avatars[j][@"permalink"]]; 
       NSString *newStr=[ys_avatars[j][@"date"] substringToIndex:[ys_avatars[j][@"date"] length]-3]; 
       [_Date1 addObject:newStr]; 
      } 
     } 
     else 
     { 
      NSLog(@"asd"); 

     } 

    } 
    @catch (NSException *exception) { 

     UIAlertView *noConn = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"Please Check Your Internet Connection" delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok", nil]; 
     [noConn show]; 

    } 


    } 
    else 
    { 
     UIAlertView *noConn = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"Please Check Your Internet Connection" delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok", nil]; 
    [noConn show]; 

    } 


} 




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

     static NSString *Cellidentifier1 = @"ysIpadDetailTableViewCell"; 
    ysIpadDetailTableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:Cellidentifier1 forIndexPath:indexPath]; 

// Configure the cell... 

    long row = [indexPath row]; 
    cell1.TitleLabel1.text = _Title1[row]; 
    cell1.AuthorLabel1.text = _Author1[row]; 
    cell1.Ddate1.text = _Date1[row]; 



    NSString *newUrl = [_Images1[indexPath.row]  stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    dispatch_queue_t taskQ = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
    dispatch_async(taskQ, ^{ 
    NSURL *Imageurl = [NSURL URLWithString:newUrl]; 
    NSData *data = [NSData dataWithContentsOfURL:Imageurl]; 



    UIImage *images1 = [[UIImage alloc] initWithData:data]; 
    // Now the image will have been loaded and decoded and is ready to rock for the main thread 
    dispatch_sync(dispatch_get_main_queue(), ^{ 
     ysIpadDetailTableViewCell *updateCell =(id)[tableView cellForRowAtIndexPath:indexPath]; 
     if(updateCell) 
      updateCell.ThumbImage1.image=images1; 
     cell1.ThumbImage1.image=images1; 

     }); 


    }); 

    return cell1; 

}

+0

Вы можете добавить свой код DetailViewController? –

+0

@ Kathiravan Спасибо, я добавил свой код, пожалуйста, проверьте его один раз. – Daljeet

+0

показать ваш подробный код просмотра, вы должны иметь табличное представление для отображения списка, я думаю> – Retro

ответ

0

U необходимо реализовать метод UITableView делегата.

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

    [self performSegueWithIdentifier:@"ShowDetails1" sender:self]; 
} 

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"ShowDetails1"]) 
    { 
     // Your code goes here 
    } 
} 

Перед этим набор делегат UITableview.

+0

- (void) prepareForSegue: (UIStoryboardSegue *) segue отправитель: (id) отправитель {if ([[идентификатор segue] isEqualToString: @ "ShowDetails1"]) {ysIpadViewController * ysIpadDetailViewViewController = [segue destinationViewController]; NSIndexPath * myindexpath1 = [self .tableView indexPathForSelectedRow]; long row1 = [myindexpath1 row]; ysIpadDetailViewViewController.DetailModal1 = @ [_ Title1 [row1], _ Author1 [row1], _ Images1 [row1], _ Details1 [row1], _ link1 [row1], _ Date 1 [row1]];}} Я только что сделал segue в раскадровке, выше - код, прямо сейчас статья открыта в подробном представлении контроллера, а не в новом контроллере представления. – Daljeet

+0

Я думаю, вы не получили моего вопроса, так или иначе, какой код должен быть подготовлен к методу seague. – Daljeet

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