Как подтолкнуть вид, вернуться назад и вернуться к виду? - PullRequest
9 голосов
/ 17 марта 2011

Я хочу создать приложение для воспроизведения локальных аудиофайлов на iPhone, но я застрял с некоторыми из моих кодов.Мне интересно, как вы можете выдвинуть представление, вернуться к контроллеру uitableview и использовать кнопку (например, кнопку «NOW PLAYING» в медиаплеере), чтобы вернуться к представлению, не вставляя в него новую строку ..

СПАСИБО

Что мне изменить из моих кодов?

в контроллере uitableview ..

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
    *)indexPath  {  
selectedSong = [directoryContent objectAtIndex:indexPath.row];  
NSString *storyLin = [[directoryContent objectAtIndex:[indexPath row]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];  
patch = [NSString stringWithFormat:@"/%@", storyLin];


        myDetViewCont = [[mPlayerViewController alloc] initWithNibName:@"mPlayerViewController" bundle:nil];    
myDetViewCont.myProgLang = selectedSong; // assigning the correct value to the variable inside DetailViewController
        [self.navigationController pushViewController:myDetViewCont animated:YES];
        [myDetViewCont release]; // releasing controller from the memory

    }

в mPlayerViewController.m

-(IBAction) backtoplayer{
    myDetViewCont = [[mPlayerViewController alloc] initWithNibName:@"mPlayerViewController" bundle:nil];
}

Ответы [ 2 ]

11 голосов
/ 17 марта 2011

Если вы выдвинули представление на контроллер навигации, просто выдвиньте его, чтобы просмотреть представление под ним.

То есть, представление, которое вы нажимаете myDetViewCont, должно просто появиться в вызове backtoplayer.

- (IBAction)backToPlayer:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}
4 голосов
/ 17 марта 2011

Добавить к тому, что сказал Марк.

Когда у вас есть popViewControllerAnimated и пользователь хочет снова нажать тот же контроллер, вам просто нужно сохранить mPlayerViewController, а не отпустить его.

Например:

    if (!myDetViewCont)
    { // We only need to create it once.
           myDetViewCont = [[mPlayerViewController alloc] initWithNibName:@"mPlayerViewController" bundle:nil];    
    }
    myDetViewCont.myProgLang = selectedSong;
    [self.navigationController pushViewController:myDetViewCont animated:YES];
    // no longer release here, move the release call to the dealloc
...