1

こんにちはstackoverflowのみんな!

問題が発生しましたが、修正方法がわかりません...

UIViewControllerをRootViewControllerとして持つUINavigationControllerを備えたStoryBoardがあります。このRootViewControllerには、2つのUIButtonがあります。

最初のUIButtoninstantiateViewControllerWithIdentifierはUICollectionViewControllerで、うまく機能します。

2番目のUIButtoninstantiateViewControllerWithIdentifierは、2つのUITableViewを持つUIViewControllerです。UIViewControllerをインスタンス化したときの問題は次のとおりですが、2つのUITableViewは十分にロードされていますが、タッチ(スクロール)するとこのエラーが発生します:

-[__NSCFType scrollViewDidScroll:]: unrecognized selector sent to instance 0x752ff90
2012-11-21 10:22:49.300 Month[19992:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType scrollViewDidScroll:]: unrecognized selector sent to instance 0x752ff90'

しかし、私がそれをRootViewControllerにしたとき、私は望むようにすべて動作します...したがって、RootViewControllerがUIViewControllerをインスタンス化したときにのみクラッシュしました。

これは、UIButtonを押したときにUIViewControllerをインスタンス化する方法です。

  DayViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"calendarDay"];

あなたがそれらの情報で私を助けてくれることを願っています。

よろしく、

4

1 に答える 1

1

として使用してUIScrollViewDelegateいるオブジェクトがあり、そのオブジェクトのリリースが早すぎるようです。([__NSCFType scrollViewDidScroll:]メッセージがCore Foundationアイテムに送信されていることを示します。これは、オブジェクトアドレスが他の目的で再利用されていることを意味します。)

を作成するために表示するコードはDayViewController、オブジェクトをローカル変数に割り当てます。ARCを使用していると仮定して、それがデリゲートとして使用されているオブジェクトである場合は、代わりに強力なプロパティに割り当ててみてください。そのような:

// .h file
@property (nonatomic, strong) DayViewController *viewController;

// .m file
self.viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"calendarDay"];
于 2012-11-21T12:50:58.133 に答える