将NSString从一个类传递到另一个类。 (ECSlidingViewController?)

时间:2013-07-29 05:05:48

标签: ios objective-c nsstring parameter-passing ecslidingviewcontroller

首先,我已经尝试在线搜索解决方案,但没有一个适用于我,我在思考,因为我使用ECSlidingViewController浏览应用程序,我无法利用因此,prepareForSegue方法,我的问题可能需要一种不同的方法。

  1. 我有一个名为viewInits的类,它在.h文件中保存属性,我希望允许其他类设置并获取它的值。在这种情况下,属性是NSString *navBarTitle

  2. ClassA 中,我有一个tableView:didSelectRowAtIndexPath:方法,我

    1. 创建一个ViewInits类对象 - *viewInits
    2. 然后我将setNavBarTitle:设置为[self.MenuRowsArray objectAtIndex:indexPath.row]
    3. 的值
    4. 在下一行中,我做了一个NSLog检查,是的,viewInits.navBarTitle现在保留了我想要的值。
  3. ClassB's viewDidloadMethod中,类似地,我创建了一个ViewInits对象 - *viewInits并对{{进行了NSLog检查1}}。但它返回viewInits.navBarTitle这里似乎有什么问题?


  4. 以下是我尝试传递NSString的代码。我做错了什么?

    (null)

    viewInit .h

    @interface ViewInits : NSObject @property (strong, nonatomic) NSString *navBarTitle; @end tableView:didSelectRowAtIndexPath:method:

    ClassA.m

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *identifier = [self.MenuRowsArray objectAtIndex:indexPath.row]; UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; // *---------- Assign identifier to NSString viewInits ----------* ViewInits *viewInits = [[ViewInits alloc] init]; [viewInits setNavBarTitle:identifier]; NSLog(@"%@", viewInits.navBarTitle); // *---------- Assign identifier to NSString viewInits ----------* [self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^ { CGRect frame = self.slidingViewController.topViewController.view.frame; self.slidingViewController.topViewController = newTopViewController; self.slidingViewController.topViewController.view.frame = frame; [self.slidingViewController resetTopView]; }]; }

    ClassB.m

    非常感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

如果你想使用ViewInit作为常见的设置存储,它应该是一个单例,以便应用程序中的所有其他实例都能获得它。目前,您每次要使用它时都会创建一个新实例,因此新实例没有任何先前的设置。

除此之外,我知道滑动视图控制器是什么,我问它,因为你可能错误地使用它。如果您有一个视图控制器,它是当前的顶视图控制器并且它更改了顶视图控制器(A类可能正在执行此操作,不确定),那么引用self.slidingViewController将在代码中停止工作。