我写了一些代码来隐藏按钮的按钮但是......它不起作用(没什么新东西)。 我有一个主视图(我将其称为A),内部有一个按钮,按下按钮会显示一个弹出框(我将其称为B)。弹出窗口中有另一个按钮,我想用它关闭弹出框并在A中做一些事情。 换句话说,A是我的主视图,按下按钮我会显示一个弹出窗口(B)来执行登录(凭证可以填写)。
按下登录按钮(弹出框中的按钮)我调用服务来检查凭据,如果用户通过身份验证,我想关闭弹出窗口并更新我的主视图(A)。
以下是我的代码
Popover头文件(B)
#import <UIKit/UIKit.h>
@protocol MyPopoverDelegate <NSObject>
- (void) didLoginButton;
@end
@interface login : UIViewController
@property (nonatomic, assign) id<MyPopoverDelegate> delegate;
- (IBAction) doLogin;
@end
Popover实施文件(B)
#import "login.h"
@implementation login
@synthesize delegate;
....
..
- (IBAction) doLogin {
[self.delegate didLoginButton];
}
该按钮与doLogin动作链接,并且工作正常(在弹出窗口内)。我内心有一些逻辑,效果很好。
主视图头文件(A)
#import <UIKit/UIKit.h>
#import "login.h"
@interface ViewController : UIViewController <UIPopoverControllerDelegate, MyPopoverDelegate> {
UIPopoverController *myPopoverController;
}
@property (nonatomic, retain) UIPopoverController *myPopoverController;
....
..
@end
主视图实施文件(A)
@synthesize delegate;
..
...
- (void) didLoginButton {
if ([myPopoverController isPopoverVisible]) {
NSLog(@"dismiss ok");
[myPopoverController dismissPopoverAnimated:YES];
}
}
....
..
运行我的代码并按下登录按钮从主视图中显示弹出框。按下弹出窗口内的按钮没有任何反应。
基本上,我在主视图文件中设置的didLoginButton方法永远不会被触发,当然,弹出框始终可见。 我做错了什么?
答案 0 :(得分:1)
设置代理
BViewController.delegate = mainAViewController; //or self
在呈现弹出窗口之前。 如果这不是您的问题,请提供您的B创建和演示文稿中的一些代码。