首先,我已经尝试在网上搜索解决方案,但没有一个对我有用,我在想,因为我正在使用 ECSlidingViewController 在应用程序中导航,因此我无法使用该prepareForSegue
方法,我的问题可能需要不同的方法.
我有一个名为的类
viewInits
,它在.h
文件中保存我希望其他类设置和获取它的值的属性。在这种情况下,该属性是一个 NSString*navBarTitle
。在
ClassA
中,我有一个tableView:didSelectRowAtIndexPath:
方法,我- 创建一个 ViewInits 类对象 -
*viewInits
。 - 然后我将 设置
setNavBarTitle:
为 的值[self.MenuRowsArray objectAtIndex:indexPath.row]
。 - 在下一行,我做了一个 NSLog 来检查,是的,
viewInits.navBarTitle
现在拥有我想要的值。
- 创建一个 ViewInits 类对象 -
在中,类似地,我创建了一个对象 -并对. 但它返回。这里似乎有什么问题?
ClassB's
viewDidloadMethod
ViewInits
*viewInits
viewInits.navBarTitle
(null)
这是我如何尝试传递 NSString 的代码。我究竟做错了什么?
viewInit .h
@interface ViewInits : NSObject
@property (strong, nonatomic) NSString *navBarTitle;
@end
ClassA.m
tableView:didSelectRowAtIndexPath: 方法:
- (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
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// *========== ECSlidingViewController ==========*
self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius = 10.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
if (![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]])
{
self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}
[self.view addGestureRecognizer:self.slidingViewController.panGesture];
// *========== ECSlidingViewController ==========*
ViewInits *viewInits = [[ViewInits alloc] init]; // Create ViewInit class object
self.navBar.topItem.title = viewInits.navBarTitle;
NSLog(@"%@", viewInits.navBarTitle); // <<--- This always ends up null. What's wrong?
}
非常感谢您的帮助。谢谢你。