C# 单触式按钮问题

C# 单触式按钮问题,c#,ios,uinavigationcontroller,xamarin.ios,uibarbuttonitem,C#,Ios,Uinavigationcontroller,Xamarin.ios,Uibarbuttonitem,我正在与MonoTouch合作,我提出了三个关于按钮的问题,希望有人能帮助我 我正在尝试更改标题栏中的“后退”按钮。我该怎么做?我在这里看到了帖子:。然而,这是行不通的。我感觉我没有访问控制器属性。当前,当我尝试在ViewDidLoad方法中设置按钮文本时,收到一个NullReferenceException。目前,我正在尝试将文本设置为: this.NavigationItem.BackBarButtonItem.Title=“返回” 我怀疑我没有访问根控制器,但我不知道该怎么做 对于单独页面

我正在与MonoTouch合作,我提出了三个关于按钮的问题,希望有人能帮助我

  • 我正在尝试更改标题栏中的“后退”按钮。我该怎么做?我在这里看到了帖子:。然而,这是行不通的。我感觉我没有访问控制器属性。当前,当我尝试在ViewDidLoad方法中设置按钮文本时,收到一个NullReferenceException。目前,我正在尝试将文本设置为:

    this.NavigationItem.BackBarButtonItem.Title=“返回”

    我怀疑我没有访问根控制器,但我不知道该怎么做

  • 对于单独页面上的“后退”按钮,我希望执行自定义操作。我想让它像以前一样回去。但在此之前,我想执行一些自定义代码。我该怎么做

  • 我需要在一段文字中创建类似超链接的内容。我该怎么做


  • Monotuch看起来很酷。然而,学习曲线比我预期的要陡一些。谢谢大家!

    对于您的第一个问题,MonoTouch(针对您提供的问题)非常适合

        this.NavigationItem.BackBarButtonItem = new UIBarButtonItem ("MyBack", UIBarButtonItemStyle.Plain, null);
    
    确保所有的答案都正确。此代码需要在推送控制器中调用,而不是在被推送的控制器中调用

    更新

    对于第二个问题,您可能注意到一些重载,这些重载使用了
    选择器
    委托
    。但是,它们会为后退按钮提供支持


    解决此iOS限制的一种方法是覆盖
    viewdide出现
    viewdide消失
    ,以获得类似的通知。

    我通过在de viewbuilder中创建自定义按钮解决了您的第三个问题。将类型设置为“自定义”将删除非标准边框,并使其看起来像一行文本。只需更改其大小和样式,使其看起来更像超链接。我在文本中留下了一个空白,并将自定义按钮放在该空白处。

    我创建了一个扩展方法,允许您更改后退按钮文本,并可以选择使用自己的代码处理修补操作。它还保持与默认后退按钮相同的边框外观

    公共静态类MyExtensions
    {
    公共静态void SetCustomBackButton(此UIViewController、字符串buttonText、操作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(“按钮类型:”),101);
    backButton.SetTitle(buttonText,UIControlState.Normal);
    backButton.TouchUpInside+=委托{
    如果(onClick!=null)
    onClick();
    其他的
    uiViewController.NavigationController.PopViewControllerAnimated(true);
    };
    uiViewController.NavigationItem.LeftBarButtonItem=新UIBarButtonItem(backButton);
    }
    }
    
    使用stackoverflow.com时,请避免添加不相关的问题(如后退按钮和超链接)。他们使你不太可能得到对你不利的答案(除非有人对你的每一个问题都有答案)。这也降低了你的问题对其他人有用的可能性(因为问题和答案很难找到)。如有疑问,请参阅常见问题解答。我后来发现此解决方案并不总是有效。当我改变UINavigationBar的外观时,按钮返回到正方形。