Moet ik UIViewController of UIView gebruiken? Een aangepaste tabbladbalk/nav-controller maken

Ik maak een app die zowel een balk onderaan als een bovenste balk heeft (beide zijn aangepast) en ik wil dat ze daar de hele lengte van de app blijven terwijl het middelste gedeelte tussen weergaven schakelt. Maar de kicker bevindt zich op sommige punten in de app, ik wil dat de bovenste balk en onderste balk van het scherm verdwijnen en terug kunnen worden gesleept.

Wat ik dacht was om één hoofd UIViewController met drie UIViews (bovenste balk, middensectie en onderste balk) elk code uit hun eigen respectieve bestanden te laten uitvoeren. Zoiets als hoe een tabbladbalk werkt met een nav-controller. of heb ik dat achteruit? ik weet het niet echt ... maar elk constructief advies helpt =)

Ik ben vrij nieuw voor xcode en ik probeer nu al een paar dagen een manier te vinden, dus wees alsjeblieft niet te streng voor mij. Bedankt!

0

1 antwoord

Over het algemeen bouwen we één weergavecontroller voor elke 'scherm' content. Dus het basisadvies voor u zou zijn om de app op een manier te maken waarbij elke 'sectie' zijn eigen beeldcontroller is. Dit is vooral belangrijk voor het MVC-paradigma, waar uw bedrijfslogica in de viewControllers zou moeten staan, niet de views (alleen display- en interactielogica daar). Als je slechts één weergavecontroller had, zou het een geconflicteerde FAST krijgen door te proberen meerdere secties te beheren.

Een goede route kan dit zijn: integreer de hele hiërarchie in een navigatiecontroller, die u de bovenste balk geeft. Maak dan een aangepaste weergavecontroller klasse die weet hoe je je onderste balk moet maken, en laat elke sectie dit subclasseren.

Het neveneffect is dat de onderste balk uniek wordt gemaakt voor elke sectie VC. Als dat voor u niet wenselijk is, kunt u de containment van de view-controller verkennen. Het is in feite een techniek voor het bouwen van componenten zoals de navigatiecontroller, die bepaalde elementen gedurende lange tijd op het scherm houdt, terwijl 'content'-weergavecontrollers worden uitgewisseld voor een kleiner deel van het scherm. Het is niet het gemakkelijkste om te doen, en moet zorgvuldig worden overwogen. Als u echter hetzelfde exemplaar van iets op het scherm moet houden terwijl andere view controllers komen en gaan, is dit misschien de juiste manier om te gaan. Dat gezegd zijnde, overweeg eerst het andere idee (elke sectie beheert zijn eigen onderste balk). Je kunt het op een manier bereiken die hergebruik van code bevordert, enz.

0
toegevoegd
Dus eigenlijk wil je niet meer dan één weergavecontroller per weergave?
toegevoegd de auteur nfoggia, de bron
Welnu, ik probeer nu een test-app te bouwen en wat ik net deed is een UIViewController-subklasse opzetten met een UIView van 150x150 erin, en een UIViewControlelr-subklasse in die weergave geladen ... ik denk dat je zei om deze methode niet te gebruiken, maar ik wilde gewoon zien wat het doet
toegevoegd de auteur nfoggia, de bron
Om op de juiste manier te antwoorden, moeten we heel duidelijk zijn over het verschil tussen een instantie van UIView en een logisch gebied in uw app waar u items bekijkt . In de meeste gevallen heeft een UIView-instantie exact één weergavecontroller. Het is zeer zeldzaam om uitzonderingen te zien. Voor het gebied op het scherm is de regel: als er een logische breuk is tussen twee schermen met inhoud, moeten deze worden beheerd door twee verschillende view controllers (elk met hun eigen UIView-instanties).
toegevoegd de auteur Chris Trahey, de bron