Jak mogę zmienić etykietę „Anuluj” z Modalne Przejdź do Apple Watch


Jak zmienić etykietę, która pojawia się w lewym górnym rogu i mówi „Anuluj”, kiedy otwieram okno modalne… Chciałbym, aby był to przycisk z obrazem.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Etykieta
Cancel
to domyślny „tytuł” ​​modalnie reprezentowanego kontrolera WKInterfaceController, który pojawia się na pasku stanu Apple Watch.

Zastąpienie tytułu obrazem
>
Nie można ukryć paska stanu ani wyświetlać obrazu na pasku stanu, ani jako części tego łącza, ani jako jego zamiennik.

Parametry do ustawiania tytułu widoku modalnego
>
Możesz jednak ustawić tytuł na nową wartość ciągu. Na przykład możesz łatwo zamienić
Cancel
na
Close
. Istnieją cztery sposoby ustawienia tego tytułu, które opisano poniżej. Koniecznie przeczytaj

Uwaga

poniżej, ponieważ jest prawdopodobne, że w większości przypadków tylko opcja 1 będzie dopuszczalna.
  • Możesz ustawić tytuł modalnie prezentowanego WKInterfaceController w Interface Builder. Po prostu ustaw atrybut Tytuł w inspektorze atrybutów. Oczywiście w ten sposób można ustawić tylko jeden statyczny nagłówek dla każdego WKInterfaceController, chociaż można go dynamicznie zmieniać w czasie wykonywania za pomocą dowolnego z opisanych powyżej mechanizmów.
  • Możesz ustawić nagłówek w metodzie init dla modalnie prezentowanego WKInterfaceController:
    override init () { super.init ()  self.setTitle("Close")}
  • Możesz ustawić tytuł bezpośrednio w metodzie awakeWithContext eksponowanej modalnie WKInterfaceController:
    override func awakeWithContext(context: AnyObject) { super.awakeWithContext(context) self.setTitle("Close")}
  • Tytuł można przekazać do renderowanego modalnie WKInterfaceController za pomocą zmiennej kontekstu. W konstruktorze interfejsu ustaw
    identyfikator
    w Inspektorze atrybutów kontrolera dla widoku modalnego. (W tym przykładzie została ustawiona na „modalController”). Następnie ujawniasz kontroler, przekazując żądany tytuł jako kontekst:
    self.presentControllerWithName("modalController", context: "Close")
    Następnie w kontrolerze prezentowanym modalnie:
    override func awakeWithContext(context: AnyObject) { super.awakeWithContext(context)  self.setTitle(context as String)}


Uwaga:
>
Obecne „zamierzone zachowanie” WatchKit prawie na pewno oznacza, że ​​tylko pierwsza opcja zostanie uznana za akceptowalną w większości przypadków użycia. Dzieje się tak, ponieważ obecnie dla pozostałych trzech opcji początkowo zobaczysz domyślny tytuł widoku po jego załadowaniu, który zostanie następnie zastąpiony tekstem ustawionym za pomocą setTitle. awakeWithContext jest uruchamiane zgodnie z projektem po załadowaniu widoku, ale nawet użycie setTitle w init nie pozwala uniknąć początkowego wyświetlania domyślnego tytułu.
Pierwsza opcja, opisana powyżej, zastępuje
Anuluj
nowym domyślnym tytułem widoku. Jeśli połączysz niestandardowy tytuł w narzędziu do tworzenia interfejsu z dowolną z opcji 2-4 poniżej, zobaczysz dokładnie ten sam objaw (początkowy tytuł zostanie następnie zastąpiony Twoim
setTitle
), tylko z innym początkowym tytułem .
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieje możliwość usunięcia/ukrycia tytułu. Po prostu skopiuj „” do pola tytułu storyboardu. To nie jest spacja ASCII. To jest przestrzeń chińska. (Chociaż nie widzisz tytułu, nadal możesz kliknąć lewy górny róg, aby zamknąć widok modelu).
Następnie możesz utworzyć nowy przycisk, aby zamknąć widok modelu za pomocą następującego kodu:
[self dismissController];
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

spojrzałem na

Zobacz sekcję Prezentowanie kontrolerów interfejsów Modalnie w Przewodniku programowania WatchKit
https://developer.apple.com/li ... .html
który powiedział:

Zostanie wyświetlony lewy górny róg interfejsu modalnego
wiersz nagłówka kontrolera interfejsu. Gdy użytkownik kliknie tę linię, WatchKit
zamyka interfejs modalny. Ustaw pasek tytułu, aby odzwierciedlał
znaczenie odrzucenia interfejsu modalnego. Na przykład dla
Wyświetlane są informacje. Możesz ustawić wartość łańcucha jest gotowy lub zamknięty.

Jeśli
Nie określisz nazwy sterownika interfejsu, Watchkit
wyświetla domyślnie wiersz anulowania.
I o tym bicie "Anuluj", dokumentacja WKInterfaceController dla
presentControllerWithName:context:
https://developer.apple.com/li ... text:
:

Nagłówek interfejsu modalnego jest ustawiony na ciąg Cancel, chyba że
Prezentowany kontroler interfejsu wyraźnie zmienia go za pomocą metody
Settitle:
.

wygląda na to, że w tej chwili jedynym wyborem jest inna linia, a nie obraz.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Działającym, aczkolwiek ograniczonym sposobem umieszczenia obrazu w tytule jest użycie symbolu emoji. Począwszy od Xcode 7.1 symulator wydaje się cierpieć z powodu błędu i wyświetla tam niewłaściwe znaki, ale działa dobrze na urządzeniu.
setTitle("Hello world! ")

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się