Is it possible to select a cell in a previous UITableview

Discussion in 'iOS Programming' started by ulquiorra, Aug 13, 2009.

  1. ulquiorra macrumors member

    Joined:
    Jun 17, 2009
    #1
    Hello all

    Is it possible to select a row in a previous UITableview. I provided image samples to get a more clear picture of what is happening exactly.

    http://img186.imageshack.us/img186/933/picture8a.png

    http://img405.imageshack.us/img405/9327/picture9d.png

    http://img200.imageshack.us/img200/5386/picture10thm.png

    At the morning workout screen , one can select a row and behind it so it will play a Movie. If the movie plays you can press the secondbutton and it will take you to the final table. If you press the backbutton you will simply return to the previous screen.

    Now here is where my problem lies. If i'm in my final screen after pressing the secondbutton and I press on the backbutton it would be great if it could play the previous video( in other words the video connected to the previously selected cell)

    So if it's possible for me to create a function or some sort of action that can actually select the previously selected row from the first field ( for instance Lunge Forward in this example ). perhaps with some like

    Code:
    previousRow = [ self.tableView indexPathForSelectedRow];
    [self tableView:[self tableView] didSelectRowAtIndexPath:previousRow];
    
    just doing something there

    Even if it's not possible I would appreciate it if someone would let me know.

    Here is some code behind the cell when it's going to play a video

    Code:
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    //Get the dictionary of the selected data source.
    NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
    
    //check to see if video must be played
    NSString *playVids = [dictionary objectForKey:@"playVids"];
    
    finalscreen = [dictionary objectForKey:@"finalScreen"];
    
    if(playVids  == nil )
    {
    if(CurrentLevel != 0 )
    {
    if( finalscreen == nil )
    {
    NSString *movies = [dictionary objectForKey:@"movieID"];
    NSURL *movie = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:movies ofType:@"m4v"]];
    theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movie];
    [theMovie setOrientation:UIDeviceOrientationPortrait animated:NO];
    [theMovie setScalingMode:MPMovieScalingModeAspectFit];
    theMovie.backgroundColor = [ UIColor whiteColor];
    [[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(myMovieFinishedCallback:) 
    name:MPMoviePlayerPlaybackDidFinishNotification 
      object:theMovie]; 
    
    [theMovie play];
    [self getToolBarStuff];
    
    lblTitle.text = [dictionary objectForKey:@"Title"];
    [[[UIApplication sharedApplication]keyWindow]addSubview:toolbar2];
    [[[UIApplication sharedApplication]keyWindow]addSubview:imageView];
    [[UIApplication sharedApplication]keyWindow]addSubview:lblTitle];
    }
    }
    
    else 
    
    {
    WebViewController *web = [[WebViewController alloc] initWithNibName:@"WebView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:web animated:YES];
    [web release];
    }
    }
    else {
    //Prepare to tableview.
    rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
    
    //Increment the Current View
    rvController.CurrentLevel += 1;
    
    //Set the title;
    rvController.CurrentTitle = [dictionary objectForKey:@"Title"];
    
    //Push the new table view on the stack
    [self.navigationController pushViewController:rvController animated:YES];
    rvController.tableDataSource = Children;
    [rvController release];
    
    }
    }
    
    I get my info/feeds from a dictionaryfile and also different tags in my dictionary tell my tableview when to play the video and when not( playVids ).

    so to be exact I have a start screen which brings you to a second screen and that one brings you to the morning workout screen and from there if you click a cell it will play a (different with every cell) video. I can't use the standard design from apple(with the backbutton above) since this assignment specifically asks to use their own design. That's the reason why i created my own tabbar and backbutton.

    My backbutton looks like this

    Code:
    -(void)back_clicked:(id)sender 
    {
    [self.navigationController popViewControllerAnimated:YES];
    
    CurrentLevel--;
    
    switch( CurrentLevel ) {
    case 0;
    [toolbar removeFromSuperView];
    default: 
    break;
    }
    }
    
    So if I'm in the last screen I just pop that screen to return to my previous one( the morning workout). And what actually has to be done is pop that screen and play the last video. I thought I could do that by popping the last screen and then selecting the previously clicked cell in morning workout.

    Any thoughts on that.
     
  2. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #2
    Your code will be notified with viewWillAppear when you pop a view controller. So you can play a video when that happens. You could also send a notification if you like from the view controller that is about to go away in its viewWillDisappear method.
     

Share This Page