1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

XCODE NSView

Dieses Thema im Forum "iOS-Developer" wurde erstellt von AKubi, 08.12.08.

  1. AKubi

    AKubi Alkmene

    Dabei seit:
    08.12.08
    Beiträge:
    30
    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.

    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.
    Aber das will einfach nicht gelingen.

    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.
    Code:
    .h
    -(IBACTION)newView;
    .m
    -(IBACTION)newView{
      NSLog(@"test");
    }
    
    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.

    Kann mir da vieleicht jemand nen Tutorial oder nen Tip geben. Leider finde ich für neue Views immer nur diese Tableview Tutorials.
     
  2. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Im Prinzip ist es die beste Möglichkeit einen View-Nib zu laden.

    Aber ehrlich gesagt solltest du etwas Einleitendes lesen.
     
  3. Nighthawk

    Nighthawk Linsenhofener Sämling

    Dabei seit:
    16.12.06
    Beiträge:
    2.558
    Versteh ich das richtig? Du willst ein nib laden?

    Code:
    if (![NSBundle loadNibNamed:@"dasnibfile" owner:self])  {
        // hat nicht geklappt
        return;
    }
    // hat geklappt, weiter gehts
     
  4. AKubi

    AKubi Alkmene

    Dabei seit:
    08.12.08
    Beiträge:
    30
    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.
    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.

    Hier gehts auch nicht um den Startbildschirm der funzt nur der Sprung in eine weitere Ansicht, da haperts.

    So gehts auf jeden Fall nicht.
    Code:
     .m
    -(IBACtion) newView {
      UIView *view =  [[UIView alloc] initFromNibName: @"Test" bundle:[NSBundle mainBundle]];
      [view release];
    }
    
    Edit 4 oder 5 : das Oben ist glaub ich eh Mist, sieht mir mehr nach Init Funktion aus
    Code:
     .m
    -(IBACtion) newView {
      [NSBundle loadNibNamed: @"Test" owner:self];
    }
    
    So ist es im Einsteigen in XCode beschrieben funzt aber auch nicht.


    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.

    Das mit der Usereingabe und der Validierung ist auch kein Problem, selbst mit DB oder textFiles.
     
  5. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Zum einen ist es ja gleichgültig, welcher View das ist. Insofern solltest du das transferieren können.

    Aber dein Code leidet schon daran, dass nichts dauerhaftes gemacht wird.
     
  6. AKubi

    AKubi Alkmene

    Dabei seit:
    08.12.08
    Beiträge:
    30
    OK werde doch noch einmal Antworten, vieleicht erbarmt sich ja doch jemand mir bei einem anscheinend so trivialem Problem.

    @Admin Negm-Awad, ich gehe mal davon aus das du mit dauerhaft meinst, wann und wo ich meine Variablen definiere!?
    Deswegen poste ich mal etwas mehr Code, ich wollte es vorhin nur kurz halten.
    Code:
    FirstViewController.h
    #import <UIKit/UIKit.h>
    #import "TestController.h"
    
    @class TestController;
    @interface FirstViewController : UIViewController {
    	IBOutlet UIView *newView;
    	TestController *testView;
    }
    @property (nonatomic, retain)TestController *testView;
    -(IBAction) newView;
    @end
    
    
    Code:
     FirstViewController.m
    #import "FirstViewController.h"
    
    
    @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:@"Test" bundle:nil] autorelease];
    	UIView *anView = [testViewController view];
    	[newView addSubview:anView];
    	[self bringSubviewToFront:testViewController];
    }
    @end
    
    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.

    Problem ist auch das er mir bei der Methode bringSubviewToFront sagt das "warning: passing argument 1 of 'bringSubviewToFront:' from distinct Objective-C type" ihm anscheinend etwas fehlt.

    Tja wie gesagt bin noch recht neu in XCode, die letzten Jahre habe ich eigentlich nur PHP und JAVA (und was dazugehört) Programmiert.
     
    #6 AKubi, 08.12.08
    Zuletzt bearbeitet: 08.12.08

Diese Seite empfehlen