2011-03-10 69 views
0

我有一个基于导航的应用程序。当我点击一个表格的行时,下一个视图出现,返回按钮(手动创建)出现。现在我想知道如何在当前视图中获取先前视图的对象,以便使用先前视图的对象更改之前视图的标签文本之一?导航对象

谢谢。

回答

1

可以传递的价值推动第二视图必要的变量之前

secondViewController.variable = firstViewController.variable; 

然后推secondViewController

更新: 使用布尔变量willBePoppedBack为类变量,并将其设置为NO开始。

- (void)viewWillAppear { 

    if(willBePoppedBack) 
    { 
    // your label text after pressing back button 
    } 
    else { 
    // your label's default text 
    } 
} 

你应该设置变量willBePoppedBackYES当你推到下一个视图。

+0

我要访问的第一个视图的对象为第二视图,当我点击我的自定义后退按钮。 – Maulik 2011-03-10 06:41:54

+0

你可以在第一个视图的viewWillAppear中做到这一点。 – visakh7 2011-03-10 06:43:57

+0

我尝试了你说的,但是改变反映在第一次加载时。 ñ我想要做的是当我点击第二个视图的按钮然后n然后只有改变应该出现。 – Maulik 2011-03-10 06:51:53

0

如果你想做到这一点,你需要在这里,然后通过前面的视图的对象。操作员可以访问首页标签并在其上写入一些内容。

FirstView *obj=[[[FirstView allo] initWithNibName:@"FirstView"] autorelease]; 
[email protected]"Text"; 

编辑:

你需要在AppDelegate类一的NSString财产,然后作出应用程序的委托对象,并设置该字符串要标签 上的价值,现在流行的观点,并在viewWillAppear中使用此字符串在标签上书写。

它必须工作。

+0

我不认为这会工作因为当你这样做一个新的实例创建,但必要的变化不会反映当你从导航堆栈弹出作为视图控制器不是新的,但在堆栈中的一个 – visakh7 2011-03-10 06:57:38

+0

@ 7KV7 :你真的...我做了但没有工作... – Maulik 2011-03-10 07:06:33

+0

有没有办法让对象形成堆栈? – Maulik 2011-03-10 07:07:13

0

通过传递tableviews对象来初始化第二个视图,检查下面的链接,并使用类似的方法来实现您的需求。

navigation based