Если вы хотите отправлять данные от одного к другому viewController, вот путь к нему:
Скажем, у нас есть viewControllers: ViewController и NewViewController.
в ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
IBOutlet UITextField *mytext1,*mytext2,*mytext3,*mytext4;
}
@property (nonatomic,retain) IBOutlet UITextField *mytext1,*mytext2,*mytext3,*mytext4;
-(IBAction)goToNextScreen:(id)sender;
@end
в ViewController.m
#import "ViewController.h"
#import "NewViewController.h"
@implementation ViewController
@synthesize mytext1,mytext2,mytext3,mytext4;
-(IBAction)goToNextScreen:(id)sender
{
NSArray *arr = [NSArray arrayWithObjects:mytext1.text,mytext2.text,mytext3.text,mytext4.text, nil];
NewViewController *newVc = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
newVc.arrayList = arr;
[self.navigationController pushViewController:newVc animated:YES];
}
В NewViewController.h
#import <UIKit/UIKit.h>
@interface NewViewController : UITableViewController
{
NSArray *arrayList;
NSString *name,*age,*dob,*mobile;
}
@property(nonatomic, retain)NSArray *arrayList;
@end
В NewViewController.m
#import "NewViewController.h"
#import "ViewController.h"
@implementation NewViewController
@synthesize arrayList;
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [arrayList count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
cell.textLabel.text = [arrayList objectAtIndex:indexPath.row];
return cell;
}
@end
Таким образом, мы можем передавать данные с одного диспетчера представлений на другой контроллер представления ...
В Java varargs являются синтаксическим сахаром для создания массива при вызове метода. Например, эти два вызова эквивалентны:
void foo(String... args) { ... }
foo("hello", null, "world", xyz); // Java 1.5+
foo(new String[]{"hello", null, "world", xyz}); // All versions of Java
Varargs не делает ничего нового (по определению синтаксического сахара), но уменьшает верность и делает некоторые конструкции более приятными для реализации. Например, некоторые из моих любимых применений vararg включают в себя: PrintStream.printf()
, String.format()
, Method.invoke()
.
Другие хорошие применения varargs:
// This one is in the Java standard library
Collections: void addAll(Collection<? super T> c, T... elements);
// Custom examples
int max(int... nums);
void doOperation(File x, String y, SomeEnum options...);
Кроме того, varargs Java доводят язык до четности с поддержкой vararg на языках C, Python, JavaScript и других языках. Поэтому, если часто повторяющийся дизайн (например, max()
) лучше всего работает с varargs, Java больше не является нечетным языком, требующим более уродливой реализации.
Параметры, которые вы говорите, называются varargs .
Некоторые отличия:
Три периода после последнего параметра указывают, что окончательный аргумент может передаваться как массив или как последовательность аргументов
blockquote>Так, например, этот метод:
public void myMethod(String... args) {}
Может быть вызвано любым из них:
String[] myStrings = {"a", "b", "c"}; myMethod(myStrings); myMethod("a", "b", "c");
См. этот для хорошего объяснения при использовании varargs.