【发布时间】:2018-04-09 17:01:51
【问题描述】:
我的项目结合了一个用 Objective C (objCViewController) 编写的视图控制器,另一个由 swift (SwiftViewCONtroller) 编写。 我有几个变量 NSString。我想更新 objCViewController 中的字符串并使用委托在 SwiftViewController 中访问它,因为我需要在这两个视图控制器之间不断切换并不断更新字符串。
代码如下:
objCViewController.h
#import <UIKit/UIKit.h>
@protocol MyDelegate <NSObject>
@end
@interface objCViewController : UIViewController{
NSString * stringbeingpassed;
}
@property (nonatomic, weak) id<MyDelegate> delegate;
@property (nonatomic, retain) NSString * stringbeingpassed;
@end
objCViewController.m
@implementation objCViewController
@synthesize delegate;
@synthesize stringbeingpassed;
- (void)updatestring {
//update string in this method
NSString * newstring = @"testing";
if (delegate != nil && [delegate respondsToSelector:@selector(stringUpdated:)]) {
[delegate stringUpdated: newstring];
}
}
桥接头.h:
#import "objCViewController.h"
SwiftViewController.swift:
protocol MyDelegate {
func stringUpdated(newMessage: String)
}
import UIKit
@objc class SwiftViewController: UIViewController, MyDelegate{
override func viewDidLoad() {
super.viewDidLoad()
}
func stringUpdated(newMessage:String) {
let newMessage = "sent string"
}
我尝试过使用委托,但我不知道如何使用它。我对快速和客观的 C 完全陌生
第一季度。我想问一下如何将我的 newstring 分配给 objCViewController 中的委托,然后将其传递给 SwiftViewController。
第二季度。另一个问题是如何在 SwiftViewController 中检索委托中的数据。我应该添加什么?
第三季度。我在定义委托时还遗漏了什么?我需要在两个视图控制器中定义它吗? 谢谢。
【问题讨论】:
标签: ios objective-c swift appdelegate xcode9.2