首先,我已经尝试在线搜索解决方案,但没有一个适用于我,我在思考,因为我使用ECSlidingViewController浏览应用程序,我无法利用因此,prepareForSegue
方法,我的问题可能需要一种不同的方法。
我有一个名为viewInits
的类,它在.h
文件中保存属性,我希望允许其他类设置并获取它的值。在这种情况下,属性是NSString *navBarTitle
。
在 ClassA
中,我有一个tableView:didSelectRowAtIndexPath:
方法,我
*viewInits
。setNavBarTitle:
设置为[self.MenuRowsArray objectAtIndex:indexPath.row]
。viewInits.navBarTitle
现在保留了我想要的值。在 ClassB's
viewDidloadMethod
中,类似地,我创建了一个ViewInits
对象 - *viewInits
并对{{进行了NSLog检查1}}。但它返回viewInits.navBarTitle
。 这里似乎有什么问题?
以下是我尝试传递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
非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
如果你想使用ViewInit
作为常见的设置存储,它应该是一个单例,以便应用程序中的所有其他实例都能获得它。目前,您每次要使用它时都会创建一个新实例,因此新实例没有任何先前的设置。
除此之外,我知道滑动视图控制器是什么,我问它,因为你可能错误地使用它。如果您有一个视图控制器,它是当前的顶视图控制器并且它更改了顶视图控制器(A类可能正在执行此操作,不确定),那么引用self.slidingViewController
将在代码中停止工作。