我写了一些代码来隐藏按下按钮的弹出窗口,但是......它不起作用(没有什么新东西)。我有一个主视图(我称之为 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 操作链接,并且工作正常(在弹出框内)。我里面有一些逻辑,它运作良好。
主视图头文件(一)
#import <UIKit/UIKit.h>
#import "login.h"
@interface ViewController : UIViewController <UIPopoverControllerDelegate, MyPopoverDelegate> {
UIPopoverController *myPopoverController;
}
@property (nonatomic, retain) UIPopoverController *myPopoverController;
....
..
@end
主视图实现文件(一)
@synthesize delegate;
..
...
- (void) didLoginButton {
if ([myPopoverController isPopoverVisible]) {
NSLog(@"dismiss ok");
[myPopoverController dismissPopoverAnimated:YES];
}
}
....
..
运行我的代码并在弹出窗口出现的主视图中按下登录按钮。按下弹出框内的按钮没有任何反应。
基本上,我在主视图文件中设置的 didLoginButton 方法永远不会被触发,当然,弹出框总是可见的。我做错了什么?