• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Das Monatsmotto Juli lautet -- Kitsch as Kitsch can -- Jeder von Euch kann dafür ganz individuell bestimmen, was für ihn Kitsch ist und ein Foto davon einsenden. Macht mit, traut Euch! --> Klick

XCODE NSView

AKubi

Alkmene
Registriert
08.12.08
Beiträge
30
<div class="bbWrapper">Hi ich arbeite mich gerade in XCode en, mein Vorwissen besteht allerdings eher aus Websprachen wie PHP und ein bischen JAVA. Wirklich Probeleme habe ich dank der Vielzahl an Tutorials nicht, allerdings bekomme ich eine Sache nicht hin.<br /> <br /> Ich habe als Startview einen ganz normales Window/View Construct ohne Table oder dergleichen und möchte jetzt das sich nach dem Druck auf einen Button ein neues Fenster öffnet.<br /> Aber das will einfach nicht gelingen.<br /> <br /> Mein Konstruct sieht ungefähr so aus ich habe in der AppDelegate eigentlich nix geändert und für das Window die Klasse MainView erstellt vom Typ NSObject in der meine Methode newView aufgerufen wird.<br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code>.h -(IBACTION)newView; .m -(IBACTION)newView{ NSLog(@&quot;test&quot;); }</code></pre> </div> </div>Das funktioniert soweit, jetzt soll aber anstatt der Konsolenausgabe ein neues Fenster geöffnet werden und da hapert es bei mir. Einen leeren View bekomm ich hin nur mit den nibs nicht.<br /> <br /> Kann mir da vieleicht jemand nen Tutorial oder nen Tip geben. Leider finde ich für neue Views immer nur diese Tableview Tutorials.</div>
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
<div class="bbWrapper">Im Prinzip ist es die beste Möglichkeit einen View-Nib zu laden.<br /> <br /> Aber ehrlich gesagt solltest du etwas Einleitendes lesen.</div>
 

Nighthawk

Linsenhofener Sämling
Registriert
16.12.06
Beiträge
2.558
<div class="bbWrapper">Versteh ich das richtig? Du willst ein nib laden?<br /> <br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code>if (![NSBundle loadNibNamed:@&quot;dasnibfile&quot; owner:self]) { // hat nicht geklappt return; } // hat geklappt, weiter gehts</code></pre> </div> </div></div>
 

AKubi

Alkmene
Registriert
08.12.08
Beiträge
30
<div class="bbWrapper">Ja etwas einleitendes hab ich hier und lese auch kräftig (Oreily IPhone Developer und Einsteigen in XCode) nur dieses Spezielle Thema ist da irgendwie nicht zu finden. <br /> Wie der Aufbau im theoretischen ist hab ich glaub ich schon verstanden nur für das Praktische finde ich irgendwie nichts ausser Beispiele mit TableView.<br /> <br /> Hier gehts auch nicht um den Startbildschirm der funzt nur der Sprung in eine weitere Ansicht, da haperts.<br /> <br /> So gehts auf jeden Fall nicht.<br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code> .m -(IBACtion) newView { UIView *view = [[UIView alloc] initFromNibName: @&quot;Test&quot; bundle:[NSBundle mainBundle]]; [view release]; }</code></pre> </div> </div>Edit 4 oder 5 : das Oben ist glaub ich eh Mist, sieht mir mehr nach Init Funktion aus<br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code> .m -(IBACtion) newView { [NSBundle loadNibNamed: @&quot;Test&quot; owner:self]; }</code></pre> </div> </div>So ist es im Einsteigen in XCode beschrieben funzt aber auch nicht.<br /> <br /> <br /> achso sinn der Sache soll einfach sein das ich nen Startbildschirm habe mit einer Usereingabe und nach der Validierung der Eingabe, sprung in ein anderes Fenster. Mehr eigentlich nicht.<br /> <br /> Das mit der Usereingabe und der Validierung ist auch kein Problem, selbst mit DB oder textFiles.</div>
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
<div class="bbWrapper">Zum einen ist es ja gleichgültig, welcher View das ist. Insofern solltest du das transferieren können.<br /> <br /> Aber dein Code leidet schon daran, dass nichts dauerhaftes gemacht wird.</div>
 

AKubi

Alkmene
Registriert
08.12.08
Beiträge
30
<div class="bbWrapper">OK werde doch noch einmal Antworten, vieleicht erbarmt sich ja doch jemand mir bei einem anscheinend so trivialem Problem.<br /> <br /> @Admin Negm-Awad, ich gehe mal davon aus das du mit dauerhaft meinst, wann und wo ich meine Variablen definiere!?<br /> Deswegen poste ich mal etwas mehr Code, ich wollte es vorhin nur kurz halten. <br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code>FirstViewController.h #import &lt;UIKit/UIKit.h&gt; #import &quot;TestController.h&quot; @class TestController; @interface FirstViewController : UIViewController { IBOutlet UIView *newView; TestController *testView; } @property (nonatomic, retain)TestController *testView; -(IBAction) newView; @end</code></pre> </div> </div><br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Code: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code> FirstViewController.m #import &quot;FirstViewController.h&quot; @implementation HiddenCallSmsViewController @synthesize testView; - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview // Release anything that's not essential, such as cached data } - (void)dealloc { [super dealloc]; } -(IBAction) newView{ TestController *testViewController = [[[TestController alloc] initWithNibName:@&quot;Test&quot; bundle:nil] autorelease]; UIView *anView = [testViewController view]; [newView addSubview:anView]; [self bringSubviewToFront:testViewController]; } @end</code></pre> </div> </div><br /> Laut Doku hatte ich es so verstanden Das es immer ein Window Object gibt und mehrere Views und ich kann Views hinzufügen. Wie gesagt die Theorie leuchtet ja auch ein, nur wie sieht das in der Praxis aus? Oreily und Addison-Wesley bleiben da ja eher beim Theoretischen Ansatz.<br /> <br /> Problem ist auch das er mir bei der Methode bringSubviewToFront sagt das &quot;warning: passing argument 1 of 'bringSubviewToFront:' from distinct Objective-C type&quot; ihm anscheinend etwas fehlt.<br /> <br /> Tja wie gesagt bin noch recht neu in XCode, die letzten Jahre habe ich eigentlich nur PHP und JAVA (und was dazugehört) Programmiert.</div>
 
Zuletzt bearbeitet: