我有一个2个controllers
1日是self
和2是maincontroller
,在那里我推maincontroller
在堆栈中 ,所以后退按钮会自动到来。
在这里,我需要当用户按下后退按钮进行报警。
我怎样才能做到这一点?
我有一个2个controllers
1日是self
和2是maincontroller
,在那里我推maincontroller
在堆栈中 ,所以后退按钮会自动到来。
在这里,我需要当用户按下后退按钮进行报警。
我怎样才能做到这一点?
或者你可以使用UINavigationController
的委托方法。 该方法willShowViewController
按下你的VC的后退按钮时被调用。
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
首先通过使用隐藏后退按钮
self.navigationItem.hidesBackButton = YES;
然后创建自己的自定义按钮:
UIBarButtonItem *backBtn =[[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStyleDone target:self action:@selector(popAlertAction:)];
self.navigationItem.leftBarButtonItem=backBtn;
[backBtn release];
你的选择是在这里:
- (void)popAlertAction:(UIBarButtonItem*)sender
{
//Do ur stuff for pop up
}
最好和最简单的方法
尝试把这个到您要检测的按视图控制器:
-(void) viewWillDisappear:(BOOL)animated {
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
// back button was pressed. We know this is true because self is no longer
// in the navigation stack.
}
[super viewWillDisappear:animated];
}
创建您自己UIBarButtonItem
并将其设置为leftBarButtonItem
在viewDidLoad
的方法mainController
。
例如(在这里我使用了一个系统项目,但你也可以创建一个不同,详情请参阅类参考)。
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showAlertView:)];
self.navigationItem.leftBarButtonItem = leftBarButtonItem;
// only if you don't use ARC
// [leftBarButtonItem release];
哪里
- (void)showAlertView:(id)sender
{
// alert view here...
}
添加自定义后退按钮与动作,并设置在行动快讯method.You从这里可以添加自定义后退按钮: http://www.applausible.com/blog/?p=401
viewControllerCount -是保存viewControllers数量以前是在UINavigationController的VaR值。 然后,我们检查,如果viewControllerCount> [viewControllers计数]如果是这样,我们知道我们会回来(即后退按钮仿)。
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
NSArray *viewControllers = [navigationController viewControllers];
if (viewControllerCount > [viewControllers count])
{
// your code
}
viewControllerCount = [viewControllers count];
}
创建一个按钮,并给该按钮的动作如下。
[self alert];
而当显示警报,攻丝结束后是
[self.navigationController popViewController];
在这之后,
self.navigationController.LeftBarButton = myButton;
这可能有助于