3 xcode objective-c storyboard ios
嗨我以编程方式创建按钮,然后将我的按钮连接到另一个视图,但是我遇到了segue问题,我应该使用prepareForSegue方法进行故事板,但我不知道有什么样的网上样本,但是当我使用它时我会收到错误样品,请你帮我
提前致谢!
这是我的代码
创建按钮
UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
button.backgroundColor=[UIColor colorWithRed: 201.0/255.0 green: 201.0/255.0 blue:201.0/255.0 alpha: 1.0];
button.tag = currentTag;
currentTag++;
[button.layer setBorderColor: [[UIColor blackColor] CGColor]];
[button.layer setBorderWidth: 1.0];
[button setTitle:[NSString stringWithFormat:@"%d",currentTag] forState:UIControlStateNormal];
button.frame = CGRectMake(80*x, 32*y, 80, 32);
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[buttonView addSubview: button];
Run Code Online (Sandbox Code Playgroud)
按钮动作
-(void)buttonPressed:(UIButton *)button
{
NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame));
WeekView *crtObj=[[WeekView alloc]initWithNibName:@"WeekView" bundle:nil];
[self.navigationController pushViewController:crtObj animated:YES];
[crtObj release];
}
Run Code Online (Sandbox Code Playgroud)
为segue做准备
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"WeekView"]) {
// Get reference to the destination view controller
WeekView *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object]; //// I don't know what should I write instead of object
}}
Run Code Online (Sandbox Code Playgroud)
错误

编辑2:****我有一个警告:
直接从视图控制器启动的Segues必须具有用于的标识符 - [UIViewController performSegueWithIdentifier:sender:]
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"WeekView"]) {
// Get reference to the destination view controller
// WeekView *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
// [vc setMyObjectHere:object];
[segue.destinationViewController setTitle:@"WeekView"];
}}
Run Code Online (Sandbox Code Playgroud)
Mun*_*ndi 11
有两种方法可以将视图控制器推送到导航控制器上.
旧的方式,所有代码.这就是你做的.此时你可以完全忘记segues.
新方法:在Storyboard中建立Segue(将segue从一个视图控制器推送到新的视图控制器,您也在Storyboard中定义),给它一个Identifier名称,然后使用此代码推送视图控制器.
.
[self performSegueWithIdentifier:myIdentifyer sender:self];
Run Code Online (Sandbox Code Playgroud)
其中self是视图控制器.现在您可以在中进行自定义prepareForSegue:.
| 归档时间: |
|
| 查看次数: |
24550 次 |
| 最近记录: |