首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改parentViewController的属性

如何更改parentViewController的属性
EN

Stack Overflow用户
提问于 2011-05-10 20:12:19
回答 4查看 412关注 0票数 0

嗨,我有一个基于导航栏的应用程序,它有一个推送一个表视图的根视图控制器。我想从其中选择一个值并更改一个单元格的textlabel.text.But,我无法取回值?我尝试将nsstring设置为根视图控制器中的变量,所以我更改了它,但我无法在so视图控制器中访问它。

它不接受self.navigationcontroller.parentviewcontroller.myTableview,它说uiview控制器没有myTableview...

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-11 03:47:16

您不应该让推送的视图控制器请求它需要的信息,除非它是从共享单例请求的。

根视图控制器已经知道如何创建第二个视图控制器并将其推送到导航堆栈上。这是添加更多所需信息的正确位置。可能是这样的(我假设根视图控制器是一个UITableViewController__)

代码语言:javascript
复制
-(void)tableView:(UITableView*)tv didSelectRowAtIndexPath:(NSIndexPath*)ip;
{
    UIViewController* vc = [[[MyViewController alloc] initWithRequiredString:
                                 self.someStateString] autorelease];
    [self.navigationController pushViewController:vc
                                         animated:YES];
}

这样,在环境发生变化时,不需要更改MyViewController。例如,如果应用程序被制作成通用的iPhone/iPad应用程序,视图控制器不应该被推送,而是设置为UISplitViewController的右侧细节视图。这将是唯一需要更改的内容:

代码语言:javascript
复制
-(void)tableView:(UITableView*)tv didSelectRowAtIndexPath:(NSIndexPath*)ip;
{
    UIViewController* vc = [[[MyViewController alloc] initWithRequiredString:
                                 self.someStateString] autorelease];
    if ([self isPad]) {
        NSArray* vcs = [NSArray arrayWithObject:self, vc, nil]; 
        self.splitViewController.viewControllers = vcs;
    } else {
        [self.navigationController pushViewController:vc
                                             animated:YES];
    }
}
票数 1
EN

Stack Overflow用户

发布于 2011-05-10 20:16:36

1-你需要告诉编译器"parentViewController“的完整类型

代码语言:javascript
复制
[(YourViewControllerClass*) (self.navigationcontroller.parentviewcontroller) myTableView]

2- parentViewController不是导航控制器堆栈上的前一个视图控制器。使用导航控制器的viewControllers属性。它包含堆栈上的视图控制器列表。

票数 0
EN

Stack Overflow用户

发布于 2011-05-10 20:17:03

您应该在app委托中声明一个NSString,并使用app委托变量传递该值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5949831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档