Iphone 检测何时按下Viewcontroller
我正在尝试检测ViewController何时被按下。 所以我遵循了苹果的doc,关于NavegationBar代理,但我没有弄明白如何使它成功运行。 我把下面的代码放在我的ViewController中,但它没有检测到它正在推送。 我做错了什么Iphone 检测何时按下Viewcontroller,iphone,ios,objective-c,delegates,uinavigationcontroller,Iphone,Ios,Objective C,Delegates,Uinavigationcontroller,我正在尝试检测ViewController何时被按下。 所以我遵循了苹果的doc,关于NavegationBar代理,但我没有弄明白如何使它成功运行。 我把下面的代码放在我的ViewController中,但它没有检测到它正在推送。 我做错了什么 - (void)navigationBar:(UINavigationBar *)navigationBar didPushItem:(UINavigationItem *)item, { NSLog(@"didPushItem: %@", i
- (void)navigationBar:(UINavigationBar *)navigationBar didPushItem:(UINavigationItem *)item, {
NSLog(@"didPushItem: %@", item);
[self showimage];
}
您应该为
UIViewController
和UINavigationController
相关任务实施UINavigationControllerDelegate
以下是指向文档的链接:
协议中不存在您想要的特定方法,该方法类似于“navigationController:didPushViewController:animated:
”
但是,我相信您可以使用
导航控制器:willShowViewController:animated:
实现所需的行为。请注意,在显示UIViewController
的视图之前以及将其推入UINavigationController
堆栈之后调用此方法。不清楚需要执行什么操作,但有几种UIViewController
方法可用于识别其上下文。下面有两个,后面还有两个
-viewWillApear
方法是合理的,但是当视图即将插入到视图层次结构中时会调用它,这可能是您想要的,也可能不是您想要的
如果希望对推/拉进度进行更多控制,可以覆盖
- (void)willMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means being removed from parent
} else {
// Will be inserted as a child view controller of <parent>
}
}
- (void)didMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means was just removed from parent
} else {
// Was just inserted as a child view controller of <parent>
}
}
-(void)将移动到ParentViewController:(UIViewController*)父级{
if(nil==父级){
//移动到零父级意味着从父级中移除
}否则{
//将作为的子视图控制器插入
}
}
-(无效)didMoveToParentViewController:(UIViewController*)父级{
if(nil==父级){
//移动到零父级意味着刚从父级中删除
}否则{
//刚作为的子视图控制器插入
}
}
这些将在导航控制器按下/弹出子视图控制器之前和之后调用
从文件中
didMoveToParentViewController:
在添加视图控制器或从容器视图控制器中删除视图控制器后调用
-(void)didMoveToParentViewController:(UIViewController*)父级
参数
母公司
父视图控制器,如果没有父视图控制器,则为零
讨论
当视图控制器想要做出反应时,它可以重写此方法
添加到容器中
而且
将移动到ParentViewController:
在视图控制器添加或从视图中删除之前调用
容器视图控制器
-(void)将移动到ParentViewController:(UIViewController*)父级
参数
母公司
父视图控制器,如果没有父视图控制器,则为零
讨论
视图控制器可以在需要时重写此方法
已将其添加到容器中
对于
UIViewController
类,您应该实现UINavigationControllerDelegate
协议,而不是UINavigationBarDelegate
…谢谢,BOOL push=[self isMovingToParentViewController];这个方法确实对我有用!节省时间。。。!这些都是很好的补充。这取决于OP想要做什么。那些文件里有很多好东西!
- (void)willMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means being removed from parent
} else {
// Will be inserted as a child view controller of <parent>
}
}
- (void)didMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means was just removed from parent
} else {
// Was just inserted as a child view controller of <parent>
}
}