passer des valeurs en segue

hamidphonehamidphone Membre
avril 2013 modifié dans API UIKit #1
bonjour

je me coince sur le paramétrage mon menu (ECSlidingViewController)

j'ai une tab bar qui est relier au navigationController

le menu c'est un UITableViewController

aperçu de mon storyboard

le problème est que je peut pas passer les paramétrés (valeur) de mon menu au blogTableView

j'ai teste le delegate sa fonctionne pas, c'est surement j'ai oublier quelque chose

et avec segue destination j'ai réussi mais je perd la bar de navigation controller.

les2 méthode sont dans la code

voila un bout de code utilse

1-Le menu
<br />
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{<br />
<br />
	if ([[segue identifier]isEqualToString:@&quot;blogArticle&quot;]) {<br />
<br />
		NSIndexPath *selectedRowIndex=[self.tableView indexPathForSelectedRow];<br />
		menuName=[self.menuItems objectAtIndex:selectedRowIndex.row];<br />
		BlogTableViewController *blog=(BlogTableViewController*)[[segue destinationViewController]topViewController];<br />
		blog.jsontest=[self.menuItems objectAtIndex:selectedRowIndex.row];<br />
		[self.delegate Menuitemname:self data:menuName];<br />
		NSLog(@&quot;delegate %@&quot;,self.delegate);<br />
		[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{<br />
			CGRect frame = self.slidingViewController.topViewController.view.frame;<br />
			self.slidingViewController.topViewController = blog;<br />
			self.slidingViewController.topViewController.view.frame = frame;<br />
			[self.slidingViewController resetTopView];<br />
		}];<br />
<br />
<br />
	}<br />
}<br />


declaration du delegate
<br />
#import &lt;uikit uikit.h=&quot;&quot;&gt;<br />
#import &quot;ECSlidingViewController.h&quot;<br />
@class MenuViewController;<br />
@protocol MenuDelegate &lt;nsobject&gt;<br />
-(void)Menuitemname:(MenuViewController*)controller data:(NSString*)menuName;<br />
<br />
<br />
@end<br />
@interface MenuViewController : UITableViewController &lt;uitableviewdatasource, uitabbarcontrollerdelegate=&quot;&quot;&gt;<br />
@property(strong , nonatomic)NSString *jsontest;<br />
@property (strong, nonatomic)NSString *menuName;<br />
@property (strong, nonatomic)id&lt;menudelegate&gt; delegate;<br />




2-le Blog

.m

le delegate
<br />
-(void)Menuitemname:(MenuViewController *)controller data:(NSString *)menuName{<br />
	jsontest=[[NSString alloc]initWithFormat:@&quot;%@&quot;,controller.menuName];<br />
	NSLog(@&quot;json delegate test%@&quot;,jsontest);<br />
}<br />


.h
<br />
#import &lt;quartzcore quartzcore.h=&quot;&quot;&gt;<br />
#import &quot;MenuViewController.h&quot;<br />
@interface BlogTableViewController : UITableViewController&lt;menudelegate&gt;<br />
<br />


mreci de votre aide

Réponses

  • 'hamidphone' a écrit:


    le problème est que je peut pas passer les paramétrés (valeur) de mon menu au blogTableView




    Y a plantage ? Le blogTableView n'est pas instancié ?


    'hamidphone' a écrit:


    j'ai teste le delegate sa fonctionne pas, c'est surement j'ai oublier quelque chose

    et avec segue destination j'ai réussi mais je perd la bar de navigation controller.

    mreci de votre aide




    Sans doute qu'il faudrait que tu embed ton Menu dans un navigation controller et que tu fasses un segue qui parte du Menu et qui va directement sur le blog table view (et non sur le navigation controller).
  • hamidphonehamidphone Membre
    mars 2013 modifié #3
    avec delegate =nil

    variable = nil aussi

    avec le segue sa passe mais je perte le navigationcontroller
    <br />
    2013-03-31 19:05:12.281 [6997:c07] json test(null)<br />
    2013-03-31 19:05:14.018 [6997:c07] delegate (null)<br />
    2013-03-31 19:05:14.270 [6997:c07] json testFirst<br />
    2013-03-31 19:05:18.966 [6997:c07] delegate (null)<br />
    2013-03-31 19:05:19.218 [6997:c07] json testFirst avec segue mais sans navigationcontroller (perte)<br />
    


  • Sans doute qu'il faudrait que tu embed ton Menu dans un navigation controller et que tu fasses un segue qui parte du Menu et qui va directement sur le blog table view (et non sur le navigation controller).


    la j'ai un plantage, j'ai deja teste cette methode mais j'ai un plantage
    <br />
    [BlogTableViewController topViewController]: unrecognized selector sent to instance 0x6b25ed0<br />
    *** Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;-[BlogTableViewController topViewController]: unrecognized selector sent to instance 0x6b25ed0&#39;<br />
    
  • 'hamidphone' a écrit:


    la j'ai un plantage, j'ai deja teste cette methode mais j'ai un plantage
    <br />
    [BlogTableViewController topViewController]: unrecognized selector sent to instance 0x6b25ed0<br />
    *** Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;-[BlogTableViewController topViewController]: unrecognized selector sent to instance 0x6b25ed0&#39;<br />
    





    Oui, c'est logique : ton segue ne pointe plus vers un navigation controller mais directement vers ton BlogTableViewController. Ce qui implique nécessairement que :
    <br />
    BlogTableViewController *blog=(BlogTableViewController*)[[segue destinationViewController]topViewController];<br />
    




    Doit devenir :
    <br />
    BlogTableViewController *blog=(BlogTableViewController*)segue.destinationViewController;<br />
    
  • hamidphonehamidphone Membre
    mars 2013 modifié #6
    c vraie sa fonctionne mais j'ai tjr le problème de navigationcontroller qui disparait comme la premier fois sur le navigation controller plantage résolut mais retour a la caisse de départ absence de naviagtion controller

    capture écran peut expliquez mieux

    la variable n'est plus un problème si je réussi a faire apparaitre le navigationcontroller proprement
  • Hum... j'avoue que je ne comprends trop ce qui pourrait clocher. J'essaie de décrypter ce que tu cherche à  faire, mais suis pas sûr de bien tout saisir.

    à‰ventuellement, il faudrait travailler directement avec ton projet pour mieux comprendre.
  • Ah oui, question : comment instancies-tu ton Menu ?
  • hamidphonehamidphone Membre
    mars 2013 modifié #9
    'Kubernan' a écrit:


    Hum... j'avoue que je ne comprends trop ce qui pourrait clocher. J'essaie de décrypter ce que tu cherche à  faire, mais suis pas sûr de bien tout saisir.

    à‰ventuellement, il faudrait travailler directement avec ton projet pour mieux comprendre.


    moi aussi je ne sais pas pourquoi sa fonctionne pas

    j'ai trouve son petite exemple pour custom segue que j'ai réussi a passer la variable sans perdre le navigation controller je vais essayez de comparer avec le mien en esperant que je vais m'ensortir

    ya une petite navigation controller qui fonctionne bien sans le perdre mais le menu en statique

    https://nodeload.git...ip/custom-segue
  • KubernanKubernan Membre
    mars 2013 modifié #10
    Ok... je n'avais pas fait attention que ton menu reposait sur une classe particulière.



    Bon, je ne sais pas trop à  quoi elle sert (ça s'inspire apparemment d'une fonction Facebook où je n'y ai jamais mis les pieds).



    La différence notable entre ton appli et l'exemple donné est, semble-t-il, l'usage d'un tab bar controller. Ne devrait-il pas être d'ailleurs un initial view controller ? Du coup, le sliding view controller remplacerait le premier item du tab bar...



    Je donne des pistes, je n'ai pas étudié le truc.
  • oui c'est vraiment sa je vais teste aujourd'hui sur un projet a part comme sa je peut voir avancement de mes erreurs

    merci
  • hamidphonehamidphone Membre
    avril 2013 modifié #12
    problème résolut voila le petite projet avec menu en storyboad et passage des valeur entre le menu et les autres view

    avec l'aide de

    Kubernan que je le remercie au passage



    note : je n'ai pas reussi a mettre le sujet en résolut svp admin ou modérateur vous pouvez mettre en résolut
Connectez-vous ou Inscrivez-vous pour répondre.