Wie schränke ich die Ausrichtung pro View-Controller in iOS7 in einer Navigationssteuerungshierarchie ein?

7

Meine App ist ein UITabBarController - & gt; UINavigationController - & gt; UITableViewController - & gt; UIViewController.

Ich möchte zwei Dinge tun:

  1. Verhindert, dass sich meine Tabellenansicht dreht, ich möchte, dass sie immer im Hochformat bleibt.

  2. FORCE & amp; Erlaube meinem UIViewcontroller, landschaftslinks zu drehen.

Was ich weiß:

  1. Ich verstehe, dass der Viewcontroller an der Spitze der Hierarchie die Rotation steuert. Das wäre mein UITabBarController? Oder vielmehr sein einziger Viewcontroller, der sich bei objectIndex befinden würde: 0?

  2. Meine Projekteinstellungen erlauben Portrait-, LL- und LR-Rotationen. Ich denke, das ist das Muster, das ich folgen muss, um dies zu lösen, ist es ALLEN auf der obersten Ebene zu ermöglichen, zu rotieren und dann jeden VC individuell zu steuern, richtig?

Das habe ich bisher in SO gefunden.

Also, für meine oberste Hierarchie, setze ich die Projekteinstellungen so, dass die Rotation auf Portrait, LL und LR möglich ist.

und dann in meinem Tableview-Controller, den ich nicht drehen möchte:

%Vor%

und schließlich in meinem uiviewcontroller, den ich drehen möchte:

%Vor%

Das funktioniert jedoch nicht. Ich kann beide in jede Richtung drehen. Ich weiß auch nicht, wie man Rotation LL erzwingt, wenn ich zu meinem uivc komme, das von einem modalen Übergang von meinem tablevc genannt wird.

Jede Hilfe, die dieses Durcheinander versteht, würde sehr geschätzt werden:)

    
marciokoko 12.12.2013, 14:35
quelle

3 Antworten

6

Ok, hier ist es. irgendwie kompliziert.

Die Projekteinstellungen müssen P, LL & LR

zulassen

Das Storyboard ist ein UINavController mit einem UITableViewController mit einem Push-Bar-Button-Segment zu einem UIViewController .

Alle Szenen im Storyboard müssen als Orientierung in simulierten Metriken abgeleitet worden sein. Ich sagte nur, nach einer Weile habe ich sie alle mit verschiedenen Einstellungen nach dem Testen so viel.

Muss eine Klasse für NavController , TableViewController und die angegebene UIVController haben. Meine App begann als Einzelansicht, dann zog ich eine UITVC und schließlich die UITVC in eine UINVC eingebettet. Dann habe ich den UIVC mit der UITVC-Leiste verbunden, die ich per Push-Menü eingezogen habe.

Setze die apps window.rootvc auf die navVC , deine oberste Hierarchie vc (vergesse nicht diese ID in Storyboards zu setzen oder es stürzt natürlich ab):

%Vor%

Sagen Sie Big Boss UINVC, dass sich jeder drehen kann:

%Vor%

Schränken Sie Tablevc so ein, dass er nicht rotiert:

%Vor%

Erlaube dem letzten UIVC zu rotieren:

%Vor%     
marciokoko 13.12.2013, 03:14
quelle
12

Einfach, aber es funktioniert sehr gut. IOS 7.1 und 8

AppDelegate.h

%Vor%

AppDelegate.m

%Vor%

ViewController

%Vor%

viewDidLoad

%Vor%     
Alan10977 19.09.2014 01:50
quelle
0

Beantworten

Es sollte nicht verwechselt werden UIDeviceOrientation und Schnittstellenorientierung hier ist meine Lösung

Appdelegate.h

%Vor%

AppDelegate.m

%Vor%

}

Fügen Sie in jedem VC die Funktion

hinzu %Vor%

}

viewDidAppear

%Vor%     
Alan10977 01.11.2014 19:36
quelle