创建类似whatsapp的UI聊天,以及如何在导航栏(iOS xamarin)中创建事件触控
我想问一下iOS xamarin。我正在创建一个类似于whatsapp的应用程序,但遇到了以下问题:创建类似whatsapp的UI聊天,以及如何在导航栏(iOS xamarin)中创建事件触控,ios,xamarin,navigationbar,Ios,Xamarin,Navigationbar,我想问一下iOS xamarin。我正在创建一个类似于whatsapp的应用程序,但遇到了以下问题: 在导航栏(标题栏)中创建一个类似whatsapp的UI,我将ImageView/Label拖到那里,但是ImageView/Label被导航栏覆盖。如下图所示: 单击导航栏时,我想将用户指向另一个控制器,但我不知道如何在导航栏中创建事件触摸/单击。你能给我点建议吗 这不是触摸导航栏,它的触摸按钮放在导航栏上。长按whatsapp中的标题/名称,您将看到突出显示的区域--(触摸部分)-即按钮
ImageView
/Label
拖到那里,但是ImageView
/Label
被导航栏覆盖。如下图所示:这不是触摸导航栏,它的触摸按钮放在导航栏上。长按whatsapp中的标题/名称,您将看到突出显示的区域--(触摸部分)-即按钮
UIView buttonContainer = new UIView(new CoreGraphics.CGRect(0, 0, 200, 44));
buttonContainer.BackgroundColor = UIColor.Clear;
UILabel lbltitle = new UILabel(new CoreGraphics.CGRect(0, 0, 200, 44));
lbltitle.Text = "TITLE TO DISPLAY";
buttonContainer.AddSubview(lbltitle);
UIButton btnTitle = new UIButton(UIButtonType.Custom);
btnTitle.Frame = new CoreGraphics.CGRect(0, 0, 200, 44);
btnTitle.BackgroundColor = UIColor.Clear;
buttonContainer.AddSubview(btnTitle);
btnTitle.RemoveTarget(buttonTapped, UIControlEvent.TouchUpInside);
btnTitle.AddTarget(buttonTapped, UIControlEvent.TouchUpInside);
this.NavigationItem.TitleView = buttonContainer;
下面是按下按钮点击视图控制器的代码
public void buttonTapped(object sender, EventArgs e)
{
NavigationController.PushViewController(new ViewProfileController(base.Handle), false);
//add code to push view controller from here..
}
非常感谢您的帮助。我解决了第一个问题。对于问题2,如何使用btnTitle将ViewController推送到其他控制器?我的pushviewcontroller代码是“NavigationController.pushviewcontroller(新的ViewProfileController(base.Handle),false)”,但我得到错误“Foundation.MonoTouchException:Objective-C异常抛出。名称:NSInvalidArgumentException原因:不支持多次推送同一个视图控制器实例()”。我不使用buttonTapped,因为我不知道如何使用它。我在内部使用事件触碰。仅限我的代码:btnTitle.TouchUpInside+=(o,s)=>{NavigationController.PushViewController(新的ViewProfileController(base.Handle),false);};。我只想直接访问ViewProfileController。看来您多次添加了TouchUoInside。我用代码修改了答案以推送view controller。@Yulia有帮助吗?btnTitle中只有一个事件TouchUoInside。你能给我一个没有segue的push view控制器的代码吗?因为Bttle是通过代码自动创建的。非常感谢……这似乎是两个问题。请先搜索每个问题,如果没有找到任何问题,请为每个问题创建一个自己的线程。请同时显示您有问题的代码(请不要显示整个程序)。