【问题标题】:Objective-C giving value on to next ViewObjective-C 赋予下一个视图价值
【发布时间】:2014-04-16 07:33:05
【问题描述】:
#import "OtherController.h"
#import "ViewController.h"
ViewController *viewController;

@interface OtherController ()

@end

@implementation OtherController

- (void)viewDidLoad
{
    [super viewDidLoad];
    viewController = [[ViewController alloc] initWithNibName:@"viewController" bundle:nil];
}

- (IBAction)levelNormal{
    viewController.level = 1;
    [self.navigationController pushViewController:viewController animated:YES];

}

我已经尝试过在 stackoverflow 上阅读的各种提示,但它们似乎都没有正常工作。我试图在单击按钮时打开视图,当视图打开时,根据按下的按钮,视图应该有不同的“级别”编号。就我而言,我没有 NavigationController。我已经阅读了有关将代码粘贴到 AppDelegate 类中的不同帖子,尽管这对我来说也不起作用。当我调试按钮的按下时,我看到值已更改,但在尝试更改视图时没有任何其他反应。

这是 ViewController 头文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *resumeButton;
@property (weak, nonatomic) IBOutlet UIImageView *opacityScreen;
@property (weak, nonatomic) IBOutlet UILabel *scoreField;
@property (weak, nonatomic) IBOutlet UIButton *pauseButton;
@property (weak, nonatomic) IBOutlet UIButton *mainMenuButton;
@property (weak, nonatomic) NSTimer * nst;
@property(nonatomic) int level;
@end

【问题讨论】:

  • 只有导航控制器才能推送视图控制器...
  • 虽然您提到不使用 NavigationController,但您的代码描述了您使用 NavigationController。
  • 伙计,显示你的日志。如果您没有在 UINavigationController 中嵌入 OtherController,则此代码将永远无法工作。
  • 发布您的崩溃日志,然后寻求帮助!
  • @ŁukaszTomaszewski 如何在 ViewController 中嵌入 UINavigationController?只需拖放?

标签: ios objective-c view viewcontroller


【解决方案1】:

在 AppDelegate 的 didFinishLaunchingWithOptions 中创建 UINavigationController 对象,并将 UIViewcontroller 对象分配为如下所示的 rootViewController 并将 navObj 传递给窗口根视图。

viewController = [[ViewController_iPhone alloc] initWithNibName:@"ViewController_iPhone" bundle:nil]; UINavigationController *navObj = [[UINavigationController alloc] initWithRootViewController:viewController]; [self.window setRootViewController:navObj];

【讨论】:

  • 当我尝试这样做时它只是在启动时崩溃:由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在捆绑包中加载NIB:'NSBundle /admin/Library/Application Support /iPhone Simulator/7.1-64/Applications/D62E59ED-A8CD-4AB4-805F-566E50FB1946/CubeDodger.app>(已加载)',名称为'ViewController''
  • 在 initWithNibName 中加载正确的 nib 文件,并确保它是身份检查器中 yourViewController 的子类。
  • 我认为这是正确的,但请看一下:OtherController *viewController = [[OtherController alloc] initWithNibName:@"OtherController" bundle:nil]; //我正在尝试在单击按钮时从 otherController 更改为 ViewController。
  • 创建OtherController *viewController = [[OtherController alloc] initWithNibName:@"OtherController" bundle:nil];[self.NavigationController pushViewController:viewController animated:YES];在按钮的 IBAction 内
  • 但是 AppDelegate-File 是如何知道 viewController 的呢?在您告诉我使用的代码中,我必须将 initWithRootViewController 设置为所述 viewController
【解决方案2】:

您必须使用根视图控制器 OtherController 初始化 UINavigationController

查看本教程:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

【讨论】:

  • 当我使用嵌入式 NavigationController 时,尽管它不再传递我想要的值,但它会改变视图的美观和流畅。
  • 给我看你的ViewController 头文件。
  • 我在问题中发布了它,所以它的格式更好。
  • 你试过@property (assign,nonatomic) int level; 吗?如果没有,它应该会有所帮助,但我敢肯定。看看吧。
  • 好吧,它还没有工作,但我发现我也使用了模式视图更改,这对我来说真的很愚蠢。这就是为什么它改变了视图但没有给出价值。所以当我把它拿出来时,我只是得到一个“无法在包中加载 NIB”,错误并且在尝试更改视图时应用程序崩溃了。
【解决方案3】:
- (IBAction)levelNormal
{
    //  viewController.level = 1;



    OtherController *nextobj=[[OtherController alloc] initWithNibName:@"OtherController" bundle:nil];
    nextobj.dictionay_passdata=[your_array_data]; //your data

    [self.navigationController pushViewController:nextobj animated:YES];

}

在您的 OtherController 中创建一个字典以在 OtherController 中存储数据

OtherController.h 文件

{
    NSMutableDictionary *dictionay_passdata;

}

其他控制器.m 文件

@implementation OtherController

@synthesize dictionay_passdata; //this is must to write in your code





- (void)viewDidLoad
{
    NSLog(@"%@",dictionay_passdata);

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

【讨论】:

  • 新闻应该是什么类型的对象我不太明白。
  • 另外:ARC 禁止显式发送“release”消息,并且:“release”不可用:在自动引用计数模式下不可用
  • 尽管我没有足够的声誉,但我会否决您的答案。你试图提供帮助,我很感激,但你做得不好
猜你喜欢
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多