微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 我如何使用Xamarin的Storyboard和F#

因为它还没有(还)可以使用Storyboard来生成类和粘合代码.我有想法自己编写F#类并自己粘贴.

所以我写了这个Storyboard命名空间的加载

open System
open MonoTouch.UIKit
open MonoTouch.Foundation

[<Register("AppDelegate")>]
type AppDelegate() = 
    inherit UIApplicationDelegate()

    member val window = null with get,set

    override this.FinishedLaunching(app,options) = 
        this.window <- new UIWindow(UIScreen.MainScreen.Bounds)
        let Storyboard = UIStoryboard.FromName("MainStoryboard",null)
        this.window.RootViewController <- Storyboard.InstantiateInitialViewController() :?> UIViewController
        this.window.MakeKeyAndVisible()
        true

module Main = 
    [<EntryPoint>]
    let main args = 
        UIApplication.Main(args,null,"AppDelegate")
        0

和以下控制器类

open System
open System.Drawing
open MonoTouch.UIKit
open MonoTouch.Foundation

[<Register("HomeController")>]
type HomeController() = 
    inherit UIViewController()

    override this.ViewDidLoad() = 
        base.ViewDidLoad()
        System.Console.WriteLine("FOO!")

然后我创建了故事板(见附图).

AND – 一切都被加载,故事板工作正常 – 一个例外:ViewDidLoadnever被调用.显然我没有成功连接我的手动编码控制器.

有没有人知道如何做到这一点?

解决方法

我找到了答案.而不是创建没有参数的控制器
[<Register("HomeController")>]
type HomeController() = 
    inherit UIViewController()

必须创建一个带指针的控制器,并使用该指针初始化基本控制器.

[<Register("HomeController")>]
type HomeController(handle:IntPtr) = 
    inherit UIViewController(handle)

使用视图控制器附加视图上的控件(例如,附加名为“Clicker”的按钮)

必须将以下代码添加到视图控制器

[<Register("HomeController")>]
type HomeController(handle:IntPtr) = 
    inherit UIViewController(handle)

    let mutable _Clicker = new UIButton()

    [<Outlet>]
    member this.Clicker 
           with get() = _Clicker
           and set value = _Clicker <- value

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐