Iphone 让通知生效?
我目前正试图让NSNotification开始工作,但遇到了一些问题 我有两(2)个视图控制器:A.主视图控制器和B.登录视图控制器 在我的MainViewController中,我有一个注销按钮,该按钮将向我的loginView控制器发送url以加载它(不显示我的loginView)。但是,它不起作用 在我的MainViewController中,这是我拥有的:Iphone 让通知生效?,iphone,ios,objective-c,uiwebview,nsnotifications,Iphone,Ios,Objective C,Uiwebview,Nsnotifications,我目前正试图让NSNotification开始工作,但遇到了一些问题 我有两(2)个视图控制器:A.主视图控制器和B.登录视图控制器 在我的MainViewController中,我有一个注销按钮,该按钮将向我的loginView控制器发送url以加载它(不显示我的loginView)。但是,它不起作用 在我的MainViewController中,这是我拥有的: - (IBAction)logout:(id)sender { NSURL *logoutURL = [NSURL URLWith
- (IBAction)logout:(id)sender {
NSURL *logoutURL = [NSURL URLWithString:@"https://myurl.com/logout"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"logoutInitiated" object:logoutURL];
}
这是我的LoginView控制器中的内容:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
WebView.delegate = self;
WebView.scalesPageToFit = YES;
WebView.multipleTouchEnabled = YES;
loadCount = 0;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(submitLogout) name:@"logoutInitiated" object:nil];
}
- (IBAction)submitLogout:(NSNotification*)notification {
[WebView stopLoading];
NSURL * signOutUrl = (NSURL*)[notification object];
[self loadURL:nil withURL:signOutUrl];
}
我的问题是,当我按下注销按钮时,什么也没有发生。(使用NSLogs,我发现它不会触发下一步)谢谢 添加self作为观察者时,使用选择器“submitLogout”,不带分号!但是您的方法有一个参数,因此正确的选择器应该是
@selector(submitLogout:)
这是因为您在选择器中传递的方法名称是错误的。您需要在submitLogout:
后缀中添加冒号:
使用
代替
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(submitLogout) name:@"logoutInitiated" object:nil];
希望它能帮助您。注意分号
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(**submitLogout:**) name:@"logoutInitiated" object:nil];
- (IBAction)logout:(id)sender
{
NSURL *logoutURL = [NSURL URLWithString:@"https://myurl.com/logout"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"logoutInitiated" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:logoutURL,@"RECEIVED_URL", nil]];
}
- (IBAction)submitLogout:(NSNotification*)notification
{
[WebView stopLoading];
NSURL * signOutUrl = (NSURL*)[notification objectForKey:@"RECEIVED_URL"];
[self loadURL:nil withURL:signOutUrl];
}
哇,我应该休息一下了!我真不敢相信我没听懂!非常感谢你!!!
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(**submitLogout:**) name:@"logoutInitiated" object:nil];
- (IBAction)logout:(id)sender
{
NSURL *logoutURL = [NSURL URLWithString:@"https://myurl.com/logout"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"logoutInitiated" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:logoutURL,@"RECEIVED_URL", nil]];
}
- (IBAction)submitLogout:(NSNotification*)notification
{
[WebView stopLoading];
NSURL * signOutUrl = (NSURL*)[notification objectForKey:@"RECEIVED_URL"];
[self loadURL:nil withURL:signOutUrl];
}