0
사용자 지정 대리자가 (NewsDetailsVC.swift)에 있는데, 여기서 대상 셀 클래스를 다른 클래스 (MainNewsVC.m)로 전달해야합니다. .객관적인 C 클래스에서 신속한 클래스의 사용자 지정 대리자를 호출하면 오류가 발생합니다.
NewsDetailsVC.swift
@objc protocol SelectedDataDelegate {
func valuePassed(dataString: String)
}
class NewsDetailsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
weak var newsPageDelegate: SelectedDataDelegate?
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let selectedCell = tableView.cellForRow(at: indexPath)
let storyboard = UIStoryboard(name: "MainNewsPage", bundle: nil)
mainVC = storyboard.instantiateViewController(withIdentifier: "MainNews") as! MainNewsViewController
mainVC.passedValue = selectedCell?.textLabel?.text
print("text label value: ", mainVC.passedValue)
newsPageDelegate?.valuePassed(dataString: mainVC.passedValue)
print("text from delegates: ", (dataString: mainVC.passedValue))
}
위의 방법에서 MainNewsVC.h
@protocol SelectedDataDelegate <NSObject>
@end
@interface MainNewsViewController : UIViewController<UITextFieldDelegate,UIScrollViewDelegate, SelectedDataDelegate > {
NSString *newsValue;
BOOL isFromSelection;
}
@property (nonatomic, assign) id <SelectedDataDelegate> receiveNewsDelegate;
-(void)valueChanged:(NSString *)newsString delegate:(id<SelectedDataDelegate>)theDelegate;
MainNewsVC.m
@synthesize receiveNewsDelegate;
-(void)selectQuestion:(UITapGestureRecognizer *) sender
{
CGPoint touchLocation = [sender locationOfTouch:0 inView:newsTable];
newIndexPath = [newsTable indexPathForRowAtPoint:touchLocation];
newsDetailsVC = [NewsDetailsViewController instantiate];
newsDetailsVC.SelectedDataDelegate = self;
[self presentViewController:selectQuestionVC animated:YES completion:nil];
}
-(void) valuePassed:(NSString *)newsString receiveNewsDelegate:(id<SelectedDataDelegate>)theDelegate {
[newsTable reloadData];
newsValue = newsString;
NSLog(@"newsValue: %@", newsValue);
isFromSelection = YES;
self.receiveNewsDelegate = theDelegate;
[newsTable reloadData];
}
나는 사용자 정의 위임 내가 같은 오류가 발생하고 있음을 스스로 시도 " 'SelectedDataDelegate'속성이 'NewsDetailsViewController *'유형의 개체에 없습니다." 위의 코드에 문제가 있습니까?