2016-11-03 2 views
-1

Я хотел бы спросить о iOS xamarin. Я создаю приложение, похожее на WhatsApp, но я столкнулся с следующими проблемами:Создать чат пользовательского интерфейса, например whatsapp, и как создать контакт событий в навигационной панели (iOS xamarin)

  1. Создание пользовательского интерфейса, как WhatsApp в панели навигации (строка заголовка), я перетащил ImageView/Label там, но ImageView/Label был накрыт навигационной панелью. Как и на картинке ниже: UI whatsapp

  2. Когда щелкнута панель навигации, я хочу направить пользователя на другой контроллер, но я не знаю, как создать событие касания/щелчка в панели навигации. Не могли бы вы дать мне несколько указаний на это?

+0

Это, кажется, два вопроса. Пожалуйста, сначала ищите по каждому вопросу, и если вы не найдете ничего, создайте собственный поток для каждого. Пожалуйста, также покажите код, с которым у вас проблемы (пожалуйста, не всю программу). – wonko79

ответ

0

Это не касается навигационной панели, ее касание на кнопке, расположенной на панели навигации. долгое нажатие на Title/name в 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.. 
    } 
+0

Большое спасибо ios_devloper за помощь. я решил не выпускать номер 1. Для проблемы № 2, как pushviewcontroller для другого контроллера, используя btnTitle? мой код для pushviewcontroller - «NavigationController.PushViewController (новый ViewProfileController (base.Handle), false);», но я получаю сообщение об ошибке «Исходное исключение Foundation.MonoTouchException: исключение Objective-C. Имя: NSInvalidArgumentException Причина: Нажатие того же экземпляра контроллера просмотра больше чем один раз не поддерживается () ". – Yulia

+0

Удовлетворите ли вы весь код кнопки? – Darshana

+0

Я не использую buttonTapped, потому что я не знаю, как его использовать. Я использую событие TouchUpInside. Только мой код: btnTitle.TouchUpInside + = (o, s) => { NavigationController.PushViewController (новый ViewProfileController (base.Handle), false); } ;. Я просто хочу напрямую обращаться к ViewProfileController. – Yulia