//

UINavigationBarController

UINavigationBarController discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Wie kan mij helpen, heb verschillende tutorial filmpjes gezien (oa van iphonedevcentral.org) maar krijg het niet voor elkaar om een functionerende UINavigationBarController te krijgen. Ik ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Berichten van vandaag

Reageren

 

Discussietools Weergave
  #1  
Oud 11-09-08, 09:49
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard UINavigationBarController

Wie kan mij helpen, heb verschillende tutorial filmpjes gezien (oa van iphonedevcentral.org) maar krijg het niet voor elkaar om een functionerende UINavigationBarController te krijgen. Ik wil een Window Based application met een navigationbar bovenaan. Op die bar zijn 2 keuzes, Add en Edit. Als je op Add klikt moet er een nieuw view komen waar je zaken kan toevoegen. Als je op Edit druk moeten de al toegevoegde zaken te wijzigen zijn.

Wie kan me in de goede richting duwen..
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 11-09-08, 11:55
ideveloper's schermafbeelding
ideveloper ideveloper is offline
• iOS 5.1
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2008
Locatie: Bodegraven
Berichten: 339
Standaard

kijk eens na de voorbeeld applicatie UICatalog. Die heeft mij veel geholpen hiermee.
  #3  
Oud 11-09-08, 12:03
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Had ik inmiddels al gedownload ja! Maar kan die .xib niet openen (doet het niet) dus moet het uit de code halen en daar heb ik echt nog moeite mee.
Snap de structuur nog niet helemaal.
  #4  
Oud 11-09-08, 12:10
Malork's schermafbeelding
Malork Malork is offline
• iOS 5.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Wat werkt er niet precies?
  #5  
Oud 11-09-08, 12:17
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Citaat:
Oorspronkelijk geplaatst door Malork Bekijk bericht
Wat werkt er niet precies?
In princiepe werkt er niets. Het gaat erom dat ik nog niet weet hoe ik een nieuwe view aanmaak en tevoorschijn laat komen zodra ik in de MainView met die navigationbar bovenaan op het 'plusje' druk.
  #6  
Oud 11-09-08, 13:50
macfreaker's schermafbeelding
macfreaker macfreaker is offline
iPhone(club) Guru
• iOS 14.0 beta
• iPadOS 14.0 beta
• Besturingssysteem: macOS
 
Geregistreerd: Dec 2007
Locatie: Aalst(50.936242,4.025867)
Berichten: 2.168
Stuur een bericht via ICQ naar macfreaker Stuur een bericht via Instant Messenger naar macfreaker Stuur een bericht via MSN naar macfreaker
Standaard

Een view moet je toch in een nieuwe class maken en deze daaraan koppelen of ben ik mis nu ? Ben zelf nog aan het leren, dus misschien ben ik wel verkeerd hoor.
  #7  
Oud 11-09-08, 14:12
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Citaat:
Oorspronkelijk geplaatst door macfreaker Bekijk bericht
Een view moet je toch in een nieuwe class maken en deze daaraan koppelen of ben ik mis nu ? Ben zelf nog aan het leren, dus misschien ben ik wel verkeerd hoor.
Volgens mij ook. Maar ik kan wel een nieuwe UIViewController aanmaken die een UIWindow aanmaakt waarin een UIView zit maar dan nog weet ik niet hoe ik dat plusje koppel
  #8  
Oud 11-09-08, 17:26
Malork's schermafbeelding
Malork Malork is offline
• iOS 5.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

ik ben ook nog n00b, en kan er misschien naast zitten of misschien zelfs dom overkomen , maar ik kan mij herinneren dat je ook de view als subview aan het window moet koppelen...

...maar ik kan er dus helemaal naast zitten en totaal onlogisch klinken; heb teveel gelezen / gestoeid waardoor ik nu een en ander door elkaar gooi...hoogst irritant...
  #9  
Oud 11-09-08, 17:59
ideveloper's schermafbeelding
ideveloper ideveloper is offline
• iOS 5.1
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2008
Locatie: Bodegraven
Berichten: 339
Standaard

Citaat:
Oorspronkelijk geplaatst door Pixxa Bekijk bericht
Had ik inmiddels al gedownload ja! Maar kan die .xib niet openen (doet het niet) dus moet het uit de code halen en daar heb ik echt nog moeite mee.
Snap de structuur nog niet helemaal.
Bij dit specifieke voorbeeld heb je niets aan de xib file. Alle schermen e.d. worden in de code aangemaakt. Gewoon proberen om een scherm aan te passen. Of zelf 1tje toe te voegen dmv het copieren van een bestaande en dan aanpassen. Terwijl je dit doet, kom je er vanzelf achter hoe het werkt. Teminste zo werkte het bij mij.
  #10  
Oud 11-09-08, 22:00
lnn.art lnn.art is offline
• iOS 3.0
• Besturingssysteem: Windows
 
Geregistreerd: Jul 2008
Locatie: daar
Berichten: 341
Standaard

Moest je voor elke nieuwe 'tip' geen dollar betalen volgens Apple?
  #11  
Oud 11-09-08, 22:02
ideveloper's schermafbeelding
ideveloper ideveloper is offline
• iOS 5.1
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2008
Locatie: Bodegraven
Berichten: 339
Standaard

Citaat:
Oorspronkelijk geplaatst door lnn.art Bekijk bericht
Moest je voor elke nieuwe 'tip' geen dollar betalen volgens Apple?
De facturen zijn al onderweg
  #12  
Oud 11-09-08, 22:19
Malork's schermafbeelding
Malork Malork is offline
• iOS 5.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

ik ben nog geen officiele developer
  #13  
Oud 13-09-08, 17:50
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Lukt me nog niet hoor jongens. Heb geprobeerd om met de standaard project 'NavigationBar' te beginnen maar dat maakt het volgens mij alleen maar ingewikkelder.
Window based app is makkelijker denk ik. Ik open mn Xib, gooi er een view in die ik MainView noem en als het goed is moet daar dan ook een NavigationBar in. Of moet ik apart een NavigationBarController toevoegen?
  #14  
Oud 19-09-08, 13:52
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Wie kan me even helpen. Ik heb deze tut gevolgd : Apple - Support - Discussions - [iphone]need help with ...

(onderaan)

Maar nu krijg ik deze error:





Snap niet zo goed wat ik fout doe.
  #15  
Oud 20-09-08, 03:03
Malork's schermafbeelding
Malork Malork is offline
• iOS 5.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

heb je een @property aangemaakt in je AddViewController.h file voor addviewcontroller?

Iets in de stijl van:

@Property (nonatomic, retain) UINavigationBarController *AddViewController; ?

Dit is wat ik me dan zou kunnen voorstellen...

EDIT: Oh!!! waarschijnlijk een typo in je AddViewController.h die die syntax error veroorzaakt waardoor de synthesize niet werkt.

Laatst gewijzigd door Malork; 20-09-08 om 03:12.
  #16  
Oud 20-09-08, 18:24
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Ik heb hem ondertussen iets aangepast. Hij compiled succesvol maar zodra ik in de simulator op het plusje druk crashed hij keihard. Ik zie iets over het hoofd... Zal mn files posten:

AddViewController.h

Code:
//
//  AddViewController.h
//  Countdown
//
//  Created by Pixxa on 9/19/08.
//  Copyright 2008 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>


@interface AddViewController : UIViewController {

}

@end
AddViewController.m

Code:
//
//  AddViewController.m
//  Countdown
//
//  Created by Pixxa on 9/19/08.
//  Copyright 2008 __MyCompanyName__. All rights reserved.
//

#import "AddViewController.h"


@implementation AddViewController

//@synthesize view;

- (void)viewDidLoad {
	self.navigationItem.title = @"Add Item";
	//self.navigationItem.rightBarButtonItem = self.ButtonItem;
}

/*
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
	[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
	return self;
}
*/

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    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];
}


@end
RootViewController.h

Code:
//
//  RootViewController.h
//  Countdown
//
//  Created by Pixxa on 9/18/08.
//  Copyright __MyCompanyName__ 2008. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "FruitViewController.h"
#import "AddViewController.h"

@interface RootViewController : UITableViewController {
	
	UINavigationController *navigationController;
	AddViewController *addViewController;
	FruitViewController *fruitView;

}



//@property(nonatomic, retain) AddViewController *addViewController;
@property(nonatomic, retain) FruitViewController *fruitView;
//@property (nonatomic, retain) UINavigationController *navigationController;

- (IBAction)AddButton:(id)sender;


@end
RootViewController.m

Code:
//
//  RootViewController.m
//  Countdown
//
//  Created by Pixxa on 9/18/08.
//  Copyright __MyCompanyName__ 2008. All rights reserved.
//

#import "RootViewController.h"
#import "CountdownAppDelegate.h"
#import "Fruit.h"
#import "AddViewController.h"

@interface RootViewController ()

@property (nonatomic, retain) UINavigationController *navigationController;
@property (nonatomic, retain) AddViewController *addViewController;

@end

@implementation RootViewController

@synthesize fruitView;
@synthesize addViewController;
@synthesize navigationController; 


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
	CountdownAppDelegate *appDelegate = (CountdownAppDelegate *)[[UIApplication sharedApplication] delegate];
	return appDelegate.fruits.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }
	
	CountdownAppDelegate *appDelegate = (CountdownAppDelegate *)[[UIApplication sharedApplication] delegate];
	Fruit *f = (Fruit *)[appDelegate.fruits objectAtIndex:indexPath.row];
	
	[cell setText:f.name];
    
    // Set up the cell
    return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic 
	CountdownAppDelegate *appDelegate = (CountdownAppDelegate *)[[UIApplication sharedApplication] delegate];
	Fruit *fruit = (Fruit *)[appDelegate.fruits objectAtIndex:indexPath.row];
	
	if(self.fruitView == nil) {
		FruitViewController *viewController = [[FruitViewController alloc] initWithNibName:@"FruitViewController" bundle:[NSBundle mainBundle]];
		self.fruitView = viewController;
		[viewController release];
		
}
	self.fruitView.title = [fruit name];
	[self.navigationController pushViewController:self.fruitView animated:YES];	
	[self.fruitView.fruitDescription setText:[fruit description]];
	
}




- (void)viewDidLoad {
    [super viewDidLoad];
    // Uncomment the following line to add the Edit button to the navigation bar.
	self.navigationItem.leftBarButtonItem = self.editButtonItem;
	self.title = @"Fruits";

}

- (IBAction)AddButton:(id)sender {
    AddViewController *controller = self.addViewController;
        if (navigationController == nil) {
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
        self.navigationController = navigationController;
        [navigationController release];
    }
    [self.navigationController presentModalViewController:navigationController animated:YES];
    [controller setEditing:YES animated:NO];
}


- (AddViewController *)addViewController {
    // Instantiate the add view controller if necessary.
    if (addViewController == nil) {
        addViewController = [[AddViewController alloc] initWithNibName:@"AddViewController" bundle:nil];
    }
    return addViewController;
}

/*
- (IBAction)AddButton {
	[[AddViewController alloc] initWithNibName:@"AddViewController" bundle:[NSBundle mainBundle]];
	
	
	[self.navigationController pushViewController:addViewController animated:YES];
	[navigationController setEditing:NO animated:NO];
}
 
*/
 
 
/*
// Override to support editing the list
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
    }   
    if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }   
}
*/


/*
// Override to support conditional editing of the list
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}
*/


/*
// Override to support rearranging the list
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/


/*
// Override to support conditional rearranging of the list
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}
*/

/*
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
}
*/
/*
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
}
*/
/*
- (void)viewWillDisappear:(BOOL)animated {
}
*/
/*
- (void)viewDidDisappear:(BOOL)animated {
}
*/


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    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];
	[addViewController dealloc];
	[fruitView dealloc];
}


@end

CountdownAppDelegate.m

Code:
//
//  CountdownAppDelegate.h
//  Countdown
//
//  Created by Pixxa on 9/18/08.
//  Copyright __MyCompanyName__ 2008. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "AddViewController.h"

@interface CountdownAppDelegate : NSObject <UIApplicationDelegate> {
    
	NSMutableArray *fruits;
    IBOutlet UINavigationController *navigationController;
	IBOutlet UIWindow *window;



	
}



@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;
@property (nonatomic, retain) NSMutableArray *fruits;




@end
CountDownAppdelegate.m

Code:
//
//  CountdownAppDelegate.m
//  Countdown
//
//  Created by Pixxa on 9/18/08.
//  Copyright __MyCompanyName__ 2008. All rights reserved.
//

#import "CountdownAppDelegate.h"
#import "RootViewController.h"
#import "Fruit.h"
#import "AddViewController.h"


@implementation CountdownAppDelegate 

@synthesize window;
@synthesize navigationController; 
@synthesize fruits;



- (void)applicationDidFinishLaunching:(UIApplication *)application {
	
	Fruit *apple		=[[Fruit alloc] initWithName:@"Apple" description:@"Red Delicious are my favorite"];
	Fruit *orange		=[[Fruit alloc] initWithName:@"Orange" description:@"MMM... Fresh squeezed orange juice"];	
	Fruit *watermelon	=[[Fruit alloc] initWithName:@"Watermelon" description:@"My favorite flavor of Jolly Ranchers"];	
	
	self.fruits = [[NSMutableArray alloc] initWithObjects:apple,orange,watermelon,nil];
	
	// Configure and show the window
	[window addSubview:[navigationController view]];
	[window makeKeyAndVisible];
}



- (void)applicationWillTerminate:(UIApplication *)application {
	// Save data if appropriate
}


- (void)dealloc {

	[navigationController release];
	[window release];
	[super dealloc];
}

@end

Ik moet erbij zeggen dat ik nog niet alles snap en dat ik sommige stukken code uit andere sample projecten heb gebruikt, en aangepast naar mijn eigen code. Er kunnen dus misschien code instaan wat onnodig is of nergens op slaat. Hoop dat je me het dan kan uitleggen wat er niet klopt.
  #17  
Oud 22-09-08, 05:50
TinusOZ TinusOZ is offline
• iOS 4.0
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 10
Standaard

Waarschijnlijk zul je een functie moeten toe voegen die heet setEditing zodat je je tabel in de editing mode kan zetten de functie zal er dan zo ongeveer zo uit zien
Code:
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
[tableview setEditing:editing animated:YES];
}
Trouwens zie ik zo snel niet waar jij een plus button toevoegd misschien heb ik er over heen gelezen. In deze functie voeg je dan ook een add button toe en roep je jouw add viewcontroller classe aan. Ik hoop dat je zoiets bedoelt en dat het werkt.

Als ik de code tags niet goed gebruik laat het mij even weten.
  #18  
Oud 22-09-08, 15:03
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Citaat:
Oorspronkelijk geplaatst door TinusOZ Bekijk bericht
Waarschijnlijk zul je een functie moeten toe voegen die heet setEditing zodat je je tabel in de editing mode kan zetten de functie zal er dan zo ongeveer zo uit zien
Code:
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
[tableview setEditing:editing animated:YES];
}
Trouwens zie ik zo snel niet waar jij een plus button toevoegd misschien heb ik er over heen gelezen. In deze functie voeg je dan ook een add button toe en roep je jouw add viewcontroller classe aan. Ik hoop dat je zoiets bedoelt en dat het werkt.

Als ik de code tags niet goed gebruik laat het mij even weten.
Plus button heb ik via IB toegevoegd.. of is dat niet genoeg?
  #19  
Oud 22-09-08, 15:27
TinusOZ TinusOZ is offline
• iOS 4.0
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 10
Standaard

Citaat:
Oorspronkelijk geplaatst door Pixxa Bekijk bericht
Plus button heb ik via IB toegevoegd.. of is dat niet genoeg?
Dat ligt eraan waar je de plus button hebt geplaatst het kan zijn dat je nu twee buttons over elkaar hebt omdat je in de rootviewcontroller een edit button toevoegt. Dus of je moet een button met een plusje zien of een button met edit erop of beide als de plus button aan de rechter kant staat.
  #20  
Oud 22-09-08, 15:59
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Citaat:
Oorspronkelijk geplaatst door TinusOZ Bekijk bericht
Dat ligt eraan waar je de plus button hebt geplaatst het kan zijn dat je nu twee buttons over elkaar hebt omdat je in de rootviewcontroller een edit button toevoegt. Dus of je moet een button met een plusje zien of een button met edit erop of beide als de plus button aan de rechter kant staat.
Nee, ik zie beide.
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 14:38.