ios - Inheritance from an Objective-c base view controller from Swift -
ios - Inheritance from an Objective-c base view controller from Swift -
i trying migrate uiviewcontroller objective-c class swift. view controller inheriting baseviewcontroller have mutual functionality want have in controllers. problem having generated myproject-swift.h not able find baseviewcontroller.
is there way implement uiviewcontroller in swift inherits baseviewcontroller (subclass of uiviewcontroller) written in objective-c? there bridging problem?
it can reproduced minimal code:
baseviewcontroller.h
#import <uikit/uikit.h> @interface baseviewcontroller : uiviewcontroller @end baseviewcontroller.m
import "baseviewcontroller.h" @implementation baseviewcontroller @end viewcontroller.swift
import uikit class viewcontroller : baseviewcontroller { } appdelegate.m
#import "appdelegate.h" #import "projectname-swift.h" // replace project name @implementation appdelegate - (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { viewcontroller *vc = [[viewcontroller alloc] initwithnibname:@"viewcontroller" bundle:nil]; self.window.rootviewcontroller = vc; [self.window makekeyandvisible]; homecoming yes; } projectname-bridging-header.h
#import "baseviewcontroller.h"
as pointed out in accepted reply on how can add together forwards class references used in -swift.h header?
interoperability guide (importing swift objective-c):
if utilize own objective-c types in swift code, create sure import objective-c headers types prior importing swift generated header objective-c .m file want access swift code from.
the illustration solved importing baseviewcontroller before importing projectname-swift.h in:
appdelegate.m
#import "appdelegate.h" #import "baseviewcontroller.h" #import "projectname-swift.h" // replace project name // ... ios objective-c uiviewcontroller swift
Comments
Post a Comment