在子视图中按下button时,应用程序崩溃

我有一个scrollView的大问题。 我有这个代码,当我按下“registerView”的xib文件中的一个button,然后该应用程序崩溃:

MainViewController.m:

viewDidLoad中:

 UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; scrollView.backgroundColor = [UIColor whiteColor]; scrollView.scrollEnabled = YES; scrollView.pagingEnabled = NO; scrollView.showsVerticalScrollIndicator = YES; scrollView.showsHorizontalScrollIndicator = YES; scrollView.contentSize = CGSizeMake(768, 1900); [self.view addSubview:scrollView]; RegisterViewController *registerView = [[RegisterViewController alloc] init]; [scrollView addSubview:registerView.view]; 

“注册scrollView ”被添加到scrollView ,但是当我按下“注册scrollView ”中的button应用程序崩溃与此日志:

  2014-05-12 11:18:04.599 RegisterForm[16505:60b] -[UIScrollView modalPresentationStyle]: unrecognized selector sent to instance 0x13f517200 2014-05-12 11:18:04.602 RegisterForm[16505:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIScrollView modalPresentationStyle]: unrecognized selector sent to instance 0x13f517200' *** First throw call stack: (0x18a83709c 0x196c8dd78 0x18a83bd14 0x18a839a7c 0x18a7594ac 0x18d800a68 0x1000e76b4 0x18d70c2c0 0x18d70c044 0x18d7137dc 0x18d710ab0 0x18d78488c 0x1000e674c 0x18d7815cc 0x18d780fb8 0x18d77a9a0 0x18d70d530 0x18d70c720 0x18d77a0b0 0x190119128 0x190118c54 0x18a7f6fc8 0x18a7f6f28 0x18a7f514c 0x18a735b38 0x18d7792d4 0x18d7740e8 0x1000e7cd0 0x197277aa0) libc++abi.dylib: terminating with uncaught exception of type NSException 

button:RegisterViewController.h:

 - (IBAction)btn_reset:(id)sender; 

RegisterViewController.m:

  - (IBAction)btn_reset:(id)sender { } 

我试图把一个button在scrollView而不是然后我不能访问“textfields”信息,所以我需要把一个button“RegisterView”。

在@interface中声明RegisterViewController * registerView或为其创build@property。

 @interface XXXXX () { RegisterView *registerView; } 

要么

@属性(非primefaces,强大)RegisterView * registerView;

在你的情况下MainViewController不保留registerView对象。 为了保留实例,你需要把它作为你的MainViewControllerchildViewController来添加,

 RegisterViewController *registerView = [[RegisterViewController alloc] init]; [self addChildViewController:registerView]; [scrollView addSubview:registerView.view]; 

没有必要声明任何额外的属性, UIViewController将保留所有的childViewControllers

我猜测它与不保留“RegisterView”类有关。 当您将视图添加到scrollView时,只要函数结束,类就会自动释放。

尝试将您的RegisterView类声明为属性,如下所示:

 @property (nonatomic, strong) RegisterView *registerView; 

并将其添加到滚动视图中:

 self.registerView = [[RegisterViewController alloc] init]; [scrollView addSubview:self.registerView.view];