我在导航栏的左侧创建了一个信息按钮。 如何在单击信息按钮后允许用户导航到另一个名为“AboutViewController”的视图? 请帮忙!! (以下是我的代码)
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(viewWillAppear:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setLeftBarButtonItem:modalButton animated:YES];
[modalButton release];
答案 0 :(得分:0)
我首先要告诉您的是,使用其他合适的名称更改您的@selector
方法,例如我已经提供了navigateToAboutView:
。因为您在代码中给出的方法名称可能出现在您要打电话的同一视图中!!
现在在自定义方法中编写以下代码 -
- (void) navigateToAboutView:(id)sender
{
AboutViewController *aboutViewCntrl =[[AboutViewController alloc]initWithNibName:@"AboutViewController" bundle:nil];
[self.navigationController pushViewController:aboutViewCntrl animated:YES];
}
答案 1 :(得分:0)
我不确定为什么在向按钮添加目标时已将viewWillAppear:
作为选择器传递,但该选择器定义了在按下按钮时调用的方法。 viewWillAppear:
是每次要显示视图时调用的方法,因此在点击按钮时调用它是没有意义的。因此,将其更改为openAnotherView
之类的内容并创建类似这样的方法:
- (void)openAnotherView {
// Instantiate the view controller.
AboutViewController *aboutViewController = [[AboutViewController alloc] init]; // or initWithNibName:bundle: if you use Interface Builder.
// Present the view controller modally.
[self presentModalViewController:aboutViewController animated:YES]
}
如果要关闭about视图控制器,请在AboutViewController
中使用此行:
[self dismissModalViewControllerAnimated:YES]