如何实例化 Storyboard ViewController?[复制]

How do I instantiate Storyboard ViewController? [duplicate]

提问人:Dylon Jaynes 提问时间:9/24/2022 最后编辑:Dylon Jaynes 更新时间:9/24/2022 访问量:36

问:

我有 objc 代码 (SUOTAViewController),我将其包含在我的 Swift 项目中。我还有一个与该 ViewController 关联的情节提要,其 storyboardID 为“suotaViewController”。

当我尝试像这样实例化它时:

func navigateToUpdateViewController(imageURL: URL) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "suotaViewController") as! SUOTAViewController
        vc.imageURL = imageURL
        self.navigationController?.pushViewController(vc, animated: true)
    }

我收到错误“无法将类型为'UIViewController'的值转换为'SUOTAViewController'

为什么会这样?

这是我的 SUOTAViewController,如果它有帮助:

#define UIALERTVIEW_TAG_REBOOT 1

#import "SUOTAViewController.h"

@interface SUOTAViewController ()

@end

@implementation SUOTAViewController

@synthesize blockSize;

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.textView.text = @"";
    
    storage = [ParameterStorage getInstance];
    manager = storage.manager;
    storage.file_url = self.imageURL;
    
    [self.progressView setProgress:0];
    [self.progressTextLabel setText:[NSString stringWithFormat:@"%d%%", 0]];
    
    // Enable notifications on the status characteristic
    [manager setNotifications:GenericServiceManager.SPOTA_SERVICE_CBUUID characteristicUUID:GenericServiceManager.SPOTA_SERV_STATUS_CBUUID enable:YES];
} ...

我已经在情节提要中将 ViewController 的类设置为“SUOTAViewController”,它与我的 Obj-C ViewController 的类相匹配。我仍然收到错误。

iOS Swift Objective-C UIVieviceController

评论

0赞 Dávid Pásztor 9/24/2022
您是否在情节提要中正确设置了 VC 的类型?Obj-C 中的相同代码是否有效?
0赞 Dylon Jaynes 9/24/2022
@DávidPásztor Main.storyboard 类型为“默认 - 接口生成器”。我不知道相同的代码是否适用于 Objc。我
0赞 Dávid Pásztor 9/24/2022
我不是在问故事板的类型。在情节提要中,当您选择视图控制器并设置其标识符时,您还必须设置其类型 - 默认情况下,它只是 .UIViewController
0赞 Dylon Jaynes 9/24/2022
@DávidPásztor这是有道理的,但我在 Xcode 中没有看到设置类型的选项。我如何找到它?

答: 暂无答案