Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Pluhtík
Člen
Avatar
Pluhtík:13.8.2020 22:04

Ahoj, chtěl bych ve Swiftu pro iOS změnit zobrazovaný item.

Zkusil jsem: Nic, nemám vůbec žádný nápad ani netuším, jak bych měl v google položit dotaz tak, abych našel, co hledám (většinou to najde něco, co s tím nesouvisí)

Chci docílit: Chci aplikaci, která bude mít základní zobrazení. Dejme tomu, že se jedná o aplikaci, kde si uživatel přidá pár (skutečně počítejme, že to bude v řádu jednotek, max 15 - 20) oblíbených restaurací a o každé z nich si udržuje různé informace, grafy apod. na několika controllerech. Všechny controllery jsou stejné pro všechny restaurace (žádná nemá nic navíc). Mým cílem by bylo, abych na kterémkoliv controlleru mohl přepnout jednoduše aplikaci do režimu jiné restaurace, takže zůstanu stát celou dobu na daném controlleru, akorát vypisovaná data budou jiná.

Líbí se mi řešení jaké má například aplikace Slack pro iOS, když přepíná mezi různými týmy. Ale netuším, jak se tato komponenta jmenuje. A to řešení by bylo v takovém případě potřeba doladit (je to btw vůbec možné, abych zůstal stát na tom samém controlleru).

 
Odpovědět
13.8.2020 22:04
Avatar
Filip Němeček
Tvůrce
Avatar
Filip Němeček:14.8.2020 20:28

Ahoj, nejsem si jistý jestli to dobře chápu, ale zde jde primárně o to mít dobře definovaný a abstrahovaný datový model. Pokud budeš mít třeba jednu třídu, která se stará o načítání dat na všech obrazovkách, tak není problém ji přes nějaké nastavení (např. UserDefaults) říct, co má přesně načítat.

Pak můžeš mít obrazovku pro přepínání, kde si uživatele vybere nový "item", pošleš si přes NotificationCenter notifikaci, ta bude zachycena na všech relevantních obrazovkách a provede se reload dat podle nově nastavených preferencí.

 
Nahoru Odpovědět
14.8.2020 20:28
Avatar
Pluhtík
Člen
Avatar
Odpovídá na Filip Němeček
Pluhtík:15.8.2020 17:06

Ahoj, ta pointa není v načítaných datech, ale třída, která se o tohle stará zní zajímavě (předpokládám správně, že by to celé muselo být statické?).

Ta otázka byla, jak udělat něco takového (https://www.youtube.com/watch?…): po druhém potáhnutí se otevře menu, kde máš různé workspace. Kliknutí na některý z těch workspace přepne celou aplikaci do kontextu této workspace a v podstatě vidíš jen kolegy a kanály, kteří jsou této workspace součástí. Pokud bys chtěl komunikovat s kolegou z druhé workspace, tak musíš tu aplikaci zase tímhle způsobem přepnout do jeho workspace (aplikace se do přepnutí vlastně tváří, jakoby existovala jen ta jedna jediná workspace).

Má otázka je vlastně jak se jmenuje ta boční komponenta (a případně jak ji implementovat) a také, jestli je vůbec možné této komponentě říct, ať se po změně té Workspace (v mém případě restaurace) přepne do kontextu jiného, ale zůstane na současném controlleru (pokud budu mít otevřené dezerty, tak se mi zobrazí dezerty té druhé restaurace, ale navigací můžu jít zpět na celé menu apod. a pokud bych měl otevřené to celé menu a změnil restauraci, tak tentokrát se nová restaurace zobrazí v controlleru celém menu, ne dezerty jako předtím atd.)

 
Nahoru Odpovědět
15.8.2020 17:06
Avatar
Filip Němeček
Tvůrce
Avatar
Filip Němeček:16.8.2020 15:37

Na tohle se používají knihovny, iOS to zabudované nemá, teoreticky by šel použít SplitViewContro­ller, ale hádám, že nechceš, aby to boční menu překrývalo celou obrazovku.

Jestli chceš fakt výzvu a hodně se naučit, tak bys to mohl zkusit implementovat sám. Prakticky to může být vlastně obyčejný controller, který má tento view schovaný na levé straně a např po tapu na tlačítko ho můžeš animovat, aby bylo vidět. Samotné menu pak bude nastylovaný TableView a výběrem v něm si změníš právě vybraný objekt, ze kterého se načtou nová data.

A nebo pro začátek udělej menu, které vyjíždí zespodu a to bude vlastně view controller, který zobrazíš modálně pomocí present, kde bude možnost si vybrat restauraci.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
16.8.2020 15:37
Avatar
Pluhtík
Člen
Avatar
Pluhtík:24.8.2020 22:12

Ještě doplním, co jsem nakonec zjistil (pro ty, co by to četli a chtěli něco podobného):
na tuhle komponentu existuje celý framework v cocoapods - jmenuje se SideMenu (překvapivě). Na youtube jsou videa jak jej implementovat.

 
Nahoru Odpovědět
24.8.2020 22:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.