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