2

我看过 iPhone MP 电影播放器​​的示例应用程序 - 控制器。

他们在示例代码上添加了通知。

// Register to receive a notification that the movie is now in memory and ready to play
[[NSNotificationCenter defaultCenter] addObserver:self 
                 selector:@selector(moviePreloadDidFinish:) 
                 name:MPMoviePlayerContentPreloadDidFinishNotification 
                 object:nil];

在上面的代码中,当 MPMoviePlayerController 完成加载时,它会调用 moviePreloadDidFinish 方法。

同样,我想在用户从导航栏按下后退按钮时触发一个方法(通过导航控制器返回上一个视图控制器)。

我不知道如何为此添加通知。

4

2 回答 2

6

将您自己的自定义后退按钮放在navigationItem

UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:yourImage style:UIBarButtonItemStyleBordered target:self action:@selector(goBack)];
self.navigationItem.leftBarButtonItem = btn;
[btn release];

goBackviewController 的方法中,您将放置所需的任何代码,然后弹出 viewController:

- (void)goBack {
 /* your code here */

[self.view.navigationController popToRootViewControllerAnimated:YES];
}
于 2009-11-04T22:04:24.603 回答
0

我已经设置了导航控制器的隐藏后退按钮。

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *x=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind target:self action:@selector(gotoPreviousView)];
    UINavigationItem *y=self.navigationItem;
    y.hidesBackButton=YES;
    y.leftBarButtonItem=x;
    [x release];
}

-(void)gotoPreviousView{
    MyAccountViewCtr *x=(MyAccountViewCtr*)[self.navigationController.viewControllers objectAtIndex:0];
    [self.navigationController popViewControllerAnimated:YES];
    [x refreshItems];
}
于 2009-11-04T22:17:53.253 回答