在子视图中将委托设置为self。紧急

时间:2015-07-16 08:42:04

标签: ios objective-c iphone delegates

是。我有length名为UIViewController。这是一个自定义导航结构,其中包含不同的“插槽”,我可以在其中添加内容并在这些插槽之间滑动 - 这对于实际问题并不重要,只是为了获得代码。 “{1}}中添加了”Slot“4号,如下所示:

NavigatorViewController

工作正常。我看到了我在故事板上添加的NavigatorViewControllerslot4 = [self.storyboard instantiateViewControllerWithIdentifier:@"view4"]; slot4.view.frame = CGRectMake(screenWidth*2, 0.0, screenWidth, screenHeight); [self.view addSubview:slot4.view]; )。

在这个slot4内部UIViewController我想添加另一个子视图。另一个名为UIViewController的UIViewController。我用这些行添加它:

view4

到目前为止一切都那么好 - 它也可以。但..

我的问题是在ChatViewController中有一个名为ChatViewController的UITextView。我已经设定了这个:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ChatViewController *viewController = (ChatViewController *)[storyboard instantiateViewControllerWithIdentifier:@"Chat"];
viewController.view.tag = 266;
[slot4.view addSubview:viewController.view];
chatTextView标题中的

,因为我想从@interface ChatViewController : UIViewController <UITextViewDelegate> (...) 获取操作。所以fx。当ChatViewController“成为firstResponder”时,它会调用某种动作。为了实现这一点,我必须设置

chatTextView

chatTextView的{​​{1}}方法中。

但是当我运行项目并点击chatTextView.delegate = self; 时,它会崩溃。 我收到一条错误消息:

ChatViewController

当我将viewDidLoad的委托设置为chatTextView时,没有错误,但我无法使用它: - )

请问我是否遗忘了什么!

1 个答案:

答案 0 :(得分:1)

而不是仅将ChatViewController视图添加为子视图,请尝试使用

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ChatViewController *viewController = (ChatViewController *)[storyboard instantiateViewControllerWithIdentifier:@"Chat"];
viewController.view.tag = 266;
[slot4 addChildViewController:viewController];                 
[slot4.view addSubview:viewController.view];
[viewController didMoveToParentViewController:slot4]; 

使用相同的方法添加slot4,

slot4 = [self.storyboard instantiateViewControllerWithIdentifier:@"view4"];
slot4.view.frame = CGRectMake(screenWidth*2, 0.0, screenWidth, screenHeight);
[self addChildViewController:slot4];                 
[self.view addSubview:slot4.view];
[slot4 didMoveToParentViewController:self];