c# - form - xamarin grid




MonoTouch中的按鈕問題 (2)

我正在和MonoTouch合作,我想出了三個關於按鈕的問題,希望有人能幫助我。

  1. 我試圖改變標題欄中的“返回”按鈕。 我該怎麼做呢? 我已經看到線程在這裡發布: 如何更改後退按鈕上的文本 。 但是,這是行不通的。 我得到的氛圍,我不訪問控制器屬性。 目前,當我嘗試在ViewDidLoad方法中設置按鈕文本時,我收到一個NullReferenceException異常。 目前,我試圖設置這樣的文字:

    this.NavigationItem.BackBarButtonItem.Title =“Back”;

    我有懷疑,我沒有訪問根控制器,但我不知道如何做到這一點。

  2. 對於單獨頁面上的“後退”按鈕,我想執行自定義操作。 我希望它像它一樣回去。 但在此之前,我想執行一些自定義代碼。 我該怎麼做呢?

  3. 我需要創建一個文本段落內的超鏈接。 我怎麼做?

MonoTouch看起來很酷。 然而,學習曲線比我預期的要更陡。 謝謝!


我通過在viewbuilder中創建自定義按鈕來解決第三個問題。 將類型設置為自定義將刪除標準邊界,並使其看起來像一行文本。 只需更改其大小和样式,使其看起來更像一個超鏈接。 我在文本中留下了一個空白的空間,並將自定義按鈕放在該空間中。


我創建了一個擴展方法,允許您更改後退按鈕文本,並選擇使用自己的代碼處理TouchUp操作。 它也保持與默認後退按鈕相同的邊框外觀。

public static class MyExtensions
{
    public static void SetCustomBackButton(this UIViewController uiViewController, string buttonText, Action onClick)
    {
        uiViewController.NavigationItem.HidesBackButton = true;
        var dummyButton = UIButton.FromType (UIButtonType.Custom);
        var backButton = (UIButton)MonoTouch.ObjCRuntime.Runtime.GetNSObject (
            MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSend_int (
            dummyButton.ClassHandle, MonoTouch.ObjCRuntime.Selector.GetHandle ("buttonWithType:"), 101));

        backButton.SetTitle (buttonText, UIControlState.Normal);

        backButton.TouchUpInside += delegate {
            if (onClick != null)
                onClick ();
            else
                uiViewController.NavigationController.PopViewControllerAnimated (true);
        };

        uiViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem (backButton);
    }
}






uibarbuttonitem