我遇到了dismissModalViewControllerAnimated方法的问题。
标题如下所示:
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "GADBannerView.h"
#import "weatherSetUp.h"
@interface weatherPicViewController : UIViewController{
在我的viewController.m文件中,我调用
-(IBAction)didClickSetting:(id)sender{
weatherSetUp *views = [[weatherSetUp alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:views animated:YES];
}
这一切都很好,在我的weatherSetUp文件中,一旦用户完成设置,我就会解雇模态视图。我是通过在上面的viewController.m文件中调用此方法来实现的:
-(void)dismissModal{
[self.parentViewController dismissModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:NO];
[self.parentViewController dismissModalViewControllerAnimated:NO];
NSLog(@"Model gone!");
}
但这些都不起作用。
这是我的weatherSetUp文件的头文件:
#import <UIKit/UIKit.h>
#import "viewController.h"
@interface weatherSetUp : UIViewController
-(IBAction)didClickClose:(id)sender;
@end
我实施的唯一方法是:
-(IBAction)didClickClose:(id)sender{
NSLog(@"CLick ");
viewController *viewEr = [[viewController alloc] init];
[viewEr dismissModal];
}
当我点击按钮时所有NSLog的工作,我在这里搜索并尝试了上述解雇它的方法,但没有一个工作,任何想法?
答案 0 :(得分:3)
出现问题的是你在随机视图控制器上调用dismissModal而不是实际拥有模态控制器的对象。你想在didClickClose中做什么:是这个
[[self parentViewController] dismissModalViewControllerAnimated:NO];
另外,你不应该在Cocoa中使用小写字符开始你的类名。它们应该真正大写并且有一个前缀,例如ABCWeatherSetUp。前缀可以是您想要的任何内容,但通常您需要基于您的姓名,公司名称或项目名称的内容。
答案 1 :(得分:0)
您的viewEr与您尝试关闭的viewController不同,因为您正在创建viewContoller的新对象。
您可以在viewController类文件中创建viewContoller属性
weatherSetup.viewController = self.parentViewController;
注意:不要将viewContoller用作ivar,请使用不同的名称。
答案 2 :(得分:0)
而不是[self.parentViewController dismissModalViewControllerAnimated:NO];
写下这个[self dismissModalViewControllerAnimated:NO];