gpt4 book ai didi

objective-c - 当我的 UIViewController 弹出时调用的方法?

转载 作者:行者123 更新时间:2023-12-04 06:26:40 24 4
gpt4 key购买 nike

我有一个 UIViewController 驻留在 UINavController 中。通过 AVAudioPlayer 播放音频的 View Controller 。当它被弹出时,它会继续播放音频,即使在 dealloc 方法中我释放了音频播放器。我什至尝试将音频播放器设置为停止/暂停,然后再在 dealloc 中释放它,但它不起作用。

所以,

  • 为什么在弹出 UIViewController 时不调用 dealloc?
  • 在 Controller 弹出之前/之后,我应该使用什么方法来停止音频播放器。

  • 编辑:我不认为我的 View Controller 被保留在其他地方。这是我分配并将其推送到导航 Controller 时的代码:
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *name = [tableData objectAtIndex:[indexPath row]];
    ToquesDetailVC *toqueDetail = [[ToquesDetailVC alloc] initWithNibName:@"ToquesDetail"
    audioPath:[[NSBundle mainBundle] pathForResource:name ofType:@"mp4"]
    imageNamed:[[NSBundle mainBundle] pathForResource:name ofType:@"jpg"]];
    [[self navigationController] pushViewController:toqueDetail animated:YES];
    [toqueDetail release];
    }

    最佳答案

    导航 Controller 确实释放了 View Controller ,但是由于您保留了它(使用 initwithnibname 调用 toqueDetail),并且它是自动释放的,因此在运行循环完成之前它不会被释放。您必须要么不使用便利的初始化程序,要么明确清除自动释放池。

    关于objective-c - 当我的 UIViewController 弹出时调用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967045/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com