Ich war nur fragen, ob es irgendein Beispiel, wie dies getan werden Also, was ich versuche zu tun ist, eine Suche mit MVVCross implementieren und nicht wirklich jetzt, wie zu starten. Irgendwelche Spitzen auf Richtungsrichtungen würden appriciated groß sein. Als das, was wert ist, geht mein Denken so etwas. Ich habe eine Ansicht, wo ich die Suchleiste habe. Aber ich bin nicht der Suche durch Daten in dieser Ansicht. So auf Suche möchte ich eine neue Tabellenansicht anzeigen und durch sie suchen. Ich habe eine Zelle für die Tabelle und den Controller, um es anzuzeigen (nur die usuall Liste Ansicht Zeug), aber bin jetzt mit Search-Bar-Implementierung stecken. Also, um es zusammenzufassen, was ich will, ist, wenn Benutzer etwas in Suchleiste in der Home-Ansicht, um zu zeigen searchView Liste und Suche durch die Daten im Inneren. Nicht sicher, ob dies ist, was Sie suchen. Ich tat etwas ähnliches, wenn der Benutzer mit der Eingabe beginnt Ich war die Auffrischung der Liste, die für den Benutzer angezeigt wurde. Nicht sicher, ob seine wirklich, was Sie suchen, aber es funktionierte für mich. Dann habe ich verdrahtet die Handler Dann in meinem ViewModel Ich war gerade erfrischend die Liste, so dass Sie eine vollständige Kopie der ursprünglichen Liste zu halten. Und dann Eigenschaft Species würde dann die RaisePropertyChanged-Methode auf Liptons Antwort aufrufen: wenn Sie möchten, dass die Suche auf VM, Option 1 geschehen) Haben Sie ein beobachtbares Wörterbuch als Quelle, und wie es aktualisiert, würde es ein Ereignis für mvx (a Bit zu teuer für meinen Geschmack) Option 2) Haben Sie eine normale Quelle, und bei der Filterung, heben Sie eine Art von Ereignis in VM (wie eine schwache Nachricht), die dann zwingen würde die Ansicht, um Daten neu laden (cant erinnern die genaue Syntax, aber seine Nach den Zeilen von Table. ReloadData) Doing it on View-Seite: einfacher, wie Sie nur filtern und aktualisieren Datenquelle, und reloadData wieder. Achtung: Denken Sie daran, alle Ereignisse, die Sie auf Ihrer Suchleiste abonniert haben, zu ignorieren, anstatt sie auf ViewDidLoad zu verdrahten, Sie sollten ViewWillAppear verwenden und wenn ViewDidDisappear auch nicht benötigt wird, kann searchBar einen Delegiertensatz (searchBar. Delegate) haben, den ich denke Ist ein bisschen sauberer, da Sie nur eine Sache haben, um null anstelle von mehreren beantwortet werden Ihre Antwort 2016 Stack Exchange, IncStarting in iOS7, die View-Controller verwenden Vollbild-Layout standardmäßig. Gleichzeitig haben Sie mehr Kontrolle darüber, wie es seine Ansichten ausgibt, und das ist mit diesen Eigenschaften getan: Grundsätzlich legen Sie mit dieser Eigenschaft fest, welche Seiten Ihrer Ansicht erweitert werden können, um den gesamten Bildschirm zu decken. Stellen Sie sich vor, Sie schieben einen UIViewController in einen UINavigationController. Wenn die Ansicht des View-Controllers ausgelegt ist, wird es gestartet, wo die Navigationsleiste endet, aber diese Eigenschaft stellt fest, welche Seiten der Ansicht (oben, links, unten, rechts) erweitert werden können, um den gesamten Bildschirm zu füllen. Lassen Sie es mit einem Beispiel sehen: Hier legen Sie den Wert von edgesForExtendedLayout nicht fest. Daher wird der Standardwert genommen (UIRectEdgeAll), so dass die Ansicht ihr Layout erweitert, um den gesamten Bildschirm zu füllen. Dies ist das Ergebnis: Wie Sie sehen können, erstreckt sich der rote Hintergrund hinter der Navigationsleiste und der Statusleiste. Jetzt werden Sie diesen Wert auf UIRectEdgeNone setzen. So dass Sie sagen, die Ansicht-Controller nicht erweitern Sie die Ansicht auf den Bildschirm zu decken: Diese Eigenschaft wird verwendet, wenn Ihre Ansicht ein UIScrollView oder ähnliches ist, wie ein UITableView. Sie möchten, dass Ihre Tabelle anfängt, wo die Navigationsleiste endet, weil Sie den gesamten Inhalt nicht sehen, wenn nicht, aber gleichzeitig möchten Sie, dass Ihr Tisch den gesamten Bildschirm beim Scrollen abdeckt. In diesem Fall wird das Setzen von KantenForExtendedLayout auf None nicht funktionieren, da Ihre Tabelle beginnt zu scrollen, wo die Navigationsleiste endet und es wird nicht dahinter gehen. Hier ist, wo diese Eigenschaft ist praktisch, wenn Sie lassen Sie die View-Controller automatisch anpassen die Einfügungen (Einstellung dieser Eigenschaft auf YES, auch der Standardwert) wird es Insert an der Spitze der Tabelle hinzufügen, so dass die Tabelle beginnt, wo die Navigation Bar-Enden, aber die Spirale wird den gesamten Bildschirm zu decken. Das ist, wenn auf NEIN eingestellt ist: und JA (standardmäßig): In beiden Fällen blättert die Tabelle hinter der Navigationsleiste, aber im zweiten Fall (JA) wird sie unterhalb der Navigationsleiste gestartet. Dieser Wert ist nur eine Ergänzung zu den vorherigen. Wenn die Statusleiste undurchsichtig ist, werden die Ansichten nicht um die Statusleiste erweitert, es sei denn, dieser Parameter ist JA. Wenn Sie Ihre Ansicht erweitern, um die Navigationsleiste (edgesForExtendedLayout zu UIRectEdgeAll) zu decken, und der Parameter NO (Standard) ist, wird sie die Statusleiste nicht decken, wenn sie undurchsichtig ist. Wenn etwas nicht klar ist, schreiben Sie einen Kommentar und Kranke Antwort darauf. Wie iOS weiß, was UIScrollView verwenden iOS greift die erste Unteransicht in Ihrer viewcontroller-Ansicht, so dass die eine bei Index 0, und wenn seine eine Unterklasse von UIScrollView dann die erklärten Eigenschaften anwendet es. Natürlich bedeutet dies, dass UITableViewController standardmäßig funktioniert (da die UITableView ist die erste Ansicht).View wird unter Statusleiste in iOS 7 angezeigt und EdgesForExtendedLayout nicht Im Immer ein Problem, dass meine Ansicht diplayed unter der Statusleiste. Nach der Suche fand ich, dass ich diese. EdgesForExtendedLayout UIRectEdge. None zu der ViewDidLoad () des ViewController hinzugefügt haben, aber es funktioniert nicht für mich. Als Referenz habe ich das helloiPad-Beispiel aus xamarin (docs. xamarin / samples / HelloiPad) hinzugefügt Ein Label, das es am oberen Rand des Bildschirms in IB positioniert. In iOS6 ist es richtig angezeigt. Nun fügte ich die Zeile this. EdgesForExtendedLayout UIRectEdge. None und führen Sie es in der iOS7-Simulator, wird das Etikett in der Statusleiste angezeigt. Was mache ich falsch
Comments
Post a Comment